数据结构学习笔记——栈

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

我的理解

  • 栈就是一个桶形的线性表
  • 准从先进后出,后进先出的原则
  • 底层是数组,和栈顶

具体代码实现

public class MyStack(){
long []array;
long top;
/*
*构造方法
*/
public MyStack(){
array=new long[10];//给栈初始化长度
top=-1;//栈顶初始化为-1,因为此时没有值、
}
/*
*添加数据
*/
public void push(long value){
array[++top]=value;//将value的值赋给array[0],注意++top是先自增,再赋值,而top++是先赋值再自增
}
/*
*删除数据
*/
public void del(){
//根据栈的规则,应该是删除栈顶的元素
/*特别说明,初始化数组长度10的时候,如果栈存放满了,此时top是等于9的,数组是0-9,返回的是被删除的栈顶元素array[9],
然后top-1,此时栈的长度减1,也就是删除了栈顶元素。
*/
rerutn array[top--];
}
/*
判断栈是否为空
*/
public boolen isEmpty(){
if(top==-1)
return ture;
else
return false;
}
/*
判断栈是否满
*/
public boolean isFull(){
if(top==array.length)
return true;
else
return false;
}



}

猜你喜欢

转载自blog.csdn.net/qq_38298201/article/details/80557720