如下从开源中国拷过来的,开源中不打算用了,换一个博客。数组
最近暂时不工做,也有一些时间来学习,平时常常写一些很无味,很雷同的代码,感受整我的都很差了,这几天正好能够好好利用,温习一下数据结构,对逻辑思惟的锻炼和往后工做仍是有一些帮助的。数据结构
今天先说一下数据结构中很简单很常见的栈,栈的特色就是先进后出,其实就像大学食堂的餐盘,服务人员在放餐盘的时候会一个个摞起来,最早放的确定是摞完后最下面的,最后放的是摞完后最上面的那个,而去食堂的大学生想取餐盘确定也是从最上面的那个取,直到最后一个被取走。栈也是一个道理。鄙人懒,仍是不画图了。学习
闲话少说,仍是上代码吧。测试
/**这里用数组来模拟栈*/ public class MyStack { private long [] arr; private int top; //至关于栈顶 public MyStack(){ arr = new long[10]; top = -1; } public MyStack(int maxsize){ arr = new long[maxsize]; top = -1 ; } /** * 入栈 */ public void push(int value){ arr[++top] = value; } /** * 出栈 */ public long pop(){ return arr[top--]; } /** * 查看数据,返回最上面的数据 */ public long peek(){ if(!isEmpty()){ return arr[top]; }else return 0; } /** * 判断是否为空 */ public boolean isEmpty(){ return top == -1; } /** * 判断是否满了 */ public boolean isFull(){ return top == arr.length-1; } }
测试类code
package stack_queue; public class TestMyStack { public static void main(String[] args) { MyStack ms = new MyStack(4); ms.push(23); ms.push(12); ms.push(1); ms.push(90); // System.out.println(ms.isEmpty()); // System.out.println(ms.isFull()); // // System.out.println(ms.peek()); // System.out.println(ms.peek()); while(!ms.isEmpty()){ System.out.println(ms.pop() + ","); System.out.println(ms.peek()); } System.out.println(ms.isEmpty()); System.out.println(ms.isFull()); } }
鉴于这个例子太简单了,就很少作解释了,下一篇介绍队列队列