数据结构之栈

简介: 栈:栈是限定仅在表尾进行插入和删除操作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法

栈:栈是限定仅在表尾进行插入和删除操作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法


实现一个简单的栈:1,先定义栈的容量


         2,定义栈顶,为-1


         3,定义一个存储数据的数组stackArray[ ]

 

代码:


package Stack;
public class StackDemo {
    public static void main(String[] args) {
        Stack stack = new Stack(5);
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(5);
        stack.list();
    }
}
class Stack{
     int stackArray[];
     int maxSize;//栈容量
     int top = -1;//栈顶
    public Stack(int maxSize) {
        this.maxSize = maxSize;
        stackArray = new int[maxSize];
    }
  //栈满
    public boolean isFull(){
        return top == maxSize - 1;
    }  //栈空
    public boolean isEmpty(){
        return top == -1;
    }
    //压栈
    public void push(int value){
        if (isFull()){
            System.out.println("栈满");
            return;
        }     //栈顶指针上移
        top++;
        stackArray[top] = value;
    }
    //出栈
    public int pop(){
        if (isFull()){
            throw new RuntimeException("栈空");
        }     //临时变量保存栈顶元素
        int value = stackArray[top];     //指针下移
        top--;
        return value;
    }
    //遍历栈,必须从栈顶开始显示数据
    public void list(){
        if (isEmpty()){
            System.out.println("栈空");
            return;
        }
        for (int i = top ; i >= 0 ; i--){
            System.out.printf("stack[%d]=%d\n",i,stackArray[i]);
        }
    }
}
目录
相关文章
|
8天前
|
存储 Java 容器
深入浅出 栈和队列(附加循环队列、双端队列)
深入浅出 栈和队列(附加循环队列、双端队列)
TU^
|
13天前
|
存储 调度 索引
数据结构~~栈和队列
在计算机科学中,数据结构是构建高效程序的基础。栈和队列是两种重要且常用的线性数据结构,它们在解决各种问题中发挥着关键作用。
TU^
26 1
|
1天前
|
存储 编译器 数据处理
栈溢出及解决方法
栈溢出及解决方法
|
2天前
|
存储 缓存 算法
【数据结构】栈和队列的模拟实现(两个方式实现)
【数据结构】栈和队列的模拟实现(两个方式实现)
3.栈和队列(汇总版)
3.栈和队列(汇总版)
|
6天前
|
算法 编译器 Python
栈的最后表演:逆波兰表达式求值
栈的最后表演:逆波兰表达式求值
|
9天前
<数据结构>栈和队列. 顺序表实现栈,单链表实现队列.
<数据结构>栈和队列. 顺序表实现栈,单链表实现队列
19 3
|
9天前
|
存储 测试技术 计算机视觉
栈和队列经典练习题
栈和队列经典练习题
19 3