2016-06-24  本文已影响20人  努力努力再努力_姜姜

栈的定义

  1. 栈是限定仅在表尾进行插入和删除操作的线性表。
  2. 栈的特性:
    (1)只能从栈的顶部访问数据
    (2)数据的访问符合后进先出的原则

栈的顺序存储

1.存储结构

class StackByArray{
    private int[] stack;
    private int top;
    public StackByArray(int stack_size){
        stack = new int[stack_size];
        top = -1;
    }
}

2.进栈操作

public boolean push(int data){
        if (top>=stack.length) {
            System.out.println("堆栈已满,无法再加入");
            return false;
        }
        else
        {
            stack[++top] = data;
            return true;
        }
    }

3.出栈操作

public int pop(){
        if (isEmpty()) {
            return -1;
        }
        else {
            return stack[top--];//先将数据取出,再将堆栈头指针向下移
        }
    }

栈的链式存储

1.栈的链式存储结构

class Node{
    int data;
    Node next;
    public Node(int data)
    {
        this.data = data;
        this.next = null;
    }
    
}
class StackByLink{
    public Node front ;//指向堆栈底端的指针
    public Node rear;//指向堆栈顶端的指针
}

2.进栈操作和出栈操作
基本步骤和链表差不多,注意把握栈是后进先出的数据结构。

上一篇 下一篇

猜你喜欢

热点阅读