packagecom.eh.ftd.dsa.ds.impl;importcom.eh.ftd.dsa.ds.Stack;/**
* todo
*
* @author David Li
* @create 2020/06/17 14:11
*/publicclassArrayStack<E>implementsStack<E>{packagecom.eh.ftd.dsa.ds.impl;importcom.eh.ftd.dsa.ds.Stack;/**
* todo
*
* @author David Li
* @create 2020/06/17 14:11
*/publicclassArrayStack<E>implementsStack<E>{privateintcapacity;privateinttop;privateObject[]data;publicArrayStack(intcapacity){this.capacity=capacity;top=-1;data=newObject[capacity];}@Overridepublicbooleanpush(Ee){if(isFull()){returnfalse;}data[++top]=e;returntrue;}@OverridepublicEpop(){if(isEmpty()){returnnull;}return(E)data[top--];}@OverridepublicbooleanisFull(){returntop==capacity-1;}@OverridepublicbooleanisEmpty(){returntop==-1;}@OverridepublicEpeek(){return(E)data[top];}publicstaticvoidmain(String[]args){Stack<Integer>stack=newArrayStack<>(5);stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);stack.push(6);System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());}}
packagecom.eh.ftd.dsa.ds.impl;importcom.eh.ftd.dsa.ds.Stack;/**
* todo
*
* @author David Li
* @create 2020/06/17 14:22
*/publicclassLinkedListStack<E>implementsStack<E>{privateNodehead=newNode();classNode<E>{publicNode(){}publicNode(Ee){this.e=e;}Ee;Nodenext;@OverridepublicStringtoString(){return"Node{"+"e="+e+'}';}}@Overridepublicbooleanpush(Objecto){Nodetemp=head;while(temp.next!=null){temp=temp.next;}temp.next=newNode(o);returntrue;}@OverridepublicEpop(){if(isEmpty()){returnnull;}Nodetemp=head;while(temp.next.next!=null){temp=temp.next;}Noderes=temp.next;temp.next=null;return(E)res;}@OverridepublicbooleanisFull(){returnfalse;}@OverridepublicbooleanisEmpty(){returnhead.next==null;}@OverridepublicEpeek(){if(isEmpty()){returnnull;}Nodetemp=head;while(temp.next!=null){temp=temp.next;}return(E)temp.e;}publicstaticvoidmain(String[]args){Stack<Integer>stack=newLinkedListStack();stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);stack.push(6);System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());}}