数据结构-------栈

来源:互联网 发布:仙侠世界cos捏脸数据 编辑:程序博客网 时间:2024/05/22 17:25

一、什么是栈

其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

栈是先进后出

java代码实现

package zhan;/** *  * @author asus *这是一个由数组构建的栈 *栈的特点:先进后出    * */public class ShuZu {private Object[] data=null;private int size=0;//栈的最大容量private int top =-1;//栈顶指针  当为-1的时候表示栈元素//普通的构造方法  默认创建一个容量为10的数组public ShuZu(){this(10);}/*** 构造函数:根据给定的size初始化栈*/public ShuZu(int size){this.size=size;data=new Object[size];top=-1;}//判空public boolean isEmpty(){if(top==-1){return true;}return false;}//进栈,第一个元素top=0;public void push(Object obj){if(top==size-1){System.out.println("栈满了");}else{data[++top]=obj;}}//查看栈顶元素但不移除public void del(){if(top==-1){System.out.println("栈为空");}else{System.out.println(data[top]);}}//弹出栈顶元素public void tan(){if(top==-1){System.out.println("栈位空");}System.out.println(data[top--]);}//返回对象在堆栈中的位置,以 1 为基数public int index(Object obj){int index=0;for(int i=0;i<=top;i++){if(data[i].equals(obj)){index=i+1;}}return index;}public static void main(String[] args) {ShuZu shuZu=new ShuZu(12);System.out.println(shuZu.isEmpty());shuZu.push("1");shuZu.push("2");shuZu.push("3");System.out.println(shuZu.top);int index = shuZu.index("3");System.out.println(index);}}


原创粉丝点击