栈的基本介绍

栈是一种只允许在一端进行插入或删除的线性表,也就是说先进后出。栈的操作端通常被称为栈顶,另一端被称为栈底,栈的插入操作称为压栈(push),栈删除操作称为出栈(pop)。压栈是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;出栈则是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

操作代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

public class Stack{
int top=-1; //栈顶
long arr[]; //定义一个数组,用来存放栈里面的元素
public Stack(){
arr=new long[5];//初始化数组,知名元素个数
}
public Stack(int maxsize){ //自定义栈内元素个数
arr=new long[maxsize];
}
//入栈
public void push(int value){
arr[++top]=value;

}
//出栈
public long pop(){
return arr[top--];
}
//查看
public long peek(){
return arr[top];
}
//空
public boolean IsEmpty(){
return top==-1;
}
//满
public boolean IsFull(){
return top==arr.length-1;
}
}

编写一个测试类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TextStack{
public static void main (String[] args) {
Stack a=new Stack();
a.push(1);
a.push(2);
a.push(3);
a.push(4);
a.push(5);
System.out.println(a.IsEmpty());
System.out.println(a.IsFull());
System.out.println(a.pop());
System.out.println(a.peek());

}
}

运行结果如下:
false true 5 4