栈的定义

  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.进栈操作和出栈操作
基本步骤和链表差不多,注意把握栈是后进先出的数据结构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容