栈和队列
1.通常情况下作为程序员的工具来运用
2.受限访问
3.更加抽象(通过接口进行定义)
栈就是一组记录,底层用数组或者链表实现,变现形式为先进先出
图片表现形式
java代码表示栈
package sortedListApp;
/**
* 栈的实现
* @author qingshuang
*
*/
public class StackX {
private long[] stackArray;
private int maxSize;
private int top;
public StackX(int s){
maxSize=s;
stackArray=new long[maxSize];
top=-1;
}
//添加数据
public void push(long j){
stackArray[++top]=j;
}
//查看并删除
public long pop(){
return stackArray[top--];
}
//查看
public long peek(){
return stackArray[top];
}
//是否为空
public boolean isEmpty(){
return top==-1;
}
//数据是不是满了
public boolean isFull(){
return top==(maxSize-1);
}
}
测试类
package sortedListApp;
/**
* 栈的测试类
*
* @author qingshuang
*
*/
public class StackApp {
public static void main(String[] args) {
StackX theStack = new StackX(10);
theStack.push(20);
theStack.push(40);
theStack.push(60);
theStack.push(80);
while (!theStack.isEmpty()) {
long value = theStack.pop();
System.out.print(value + " ");
}
System.out.println();
if(!theStack.isFull())theStack.push(1);
if(!theStack.isFull())theStack.push(2);
if(!theStack.isFull())theStack.push(3);
if(!theStack.isFull())theStack.push(4);
if(!theStack.isFull())theStack.push(5);
if(!theStack.isFull())theStack.push(6);
if(!theStack.isFull())theStack.push(7);
if(!theStack.isFull())theStack.push(8);
if(!theStack.isFull())theStack.push(9);
if(!theStack.isFull())theStack.push(10);
if(!theStack.isFull())theStack.push(11);
if(!theStack.isFull())theStack.push(12);
System.out.println("theStack.isEmpty()="+theStack.isEmpty());
while (!theStack.isEmpty()) {
long value = theStack.pop();
System.out.print(value + " ");
}
}
}