1.3数据结构中的栈
基本思想:后进先出(先进后出)即栈中元素被处理时,按后进先出的顺序进行,栈又叫后进先出表(LIFO)。
举例:
日常生活中有很多栈的例子。例如,放在书桌上的一摞书,只能从书顶上拿走一本书,书也只能放在顶上。
对于栈来说,入栈,出栈,栈是否为空,栈顶。等方法。
使用数组来模拟栈的操作的代码:
public class Stacktest01 {
public static void main(String[] args) {
StackT stackT=new StackT(5);
System.out.println(stackT.isEmpty());
if (!stackT.isfull()) {
stackT.push(100);
stackT.push(200);
stackT.push(300);
stackT.push(400);
// stackT.push(500);
System.out.println(stackT.peek());
// while (!stackT.isEmpty()) {
//
// System.out.println(stackT.pop());
//
//
//
//
// }
}else {
System.out.println("栈满了!!!!");
}
}
}
//建立一个stack这样的一个类
class StackT{
public int maxsize;// 这是这个栈的大小
public int Stackarray[]; //这个就是你的栈
public int top=-1; // 这个作为栈顶
public StackT(int s) {
maxsize=s;
Stackarray=new int[maxsize];
}
//入栈的方法
public void push(int number){
Stackarray[++top]=number;
}
//入栈之前要进行判断栈是否为满栈
public boolean isfull(){
return (top==maxsize-1);
}
//先进行判断栈是否为空栈 ,如果为空栈,就不需要出栈,不为空才出栈
public boolean isEmpty(){
return(top==-1);
}
//出栈操作
public int pop(){
return (Stackarray[top--]);
}
// 取的这是栈顶
public int peek(){
return (Stackarray[top]);
}
}