(九)数据结构—栈

栈和队列


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 + " ");
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值