一、栈
1.实现栈
1.1用数组实现栈:
public class MyStack < E> {
private Object[ ] stack;
private int size;
public MyStack ( ) {
stack = new Object [ 10 ] ;
}
public boolean isEmpty ( ) {
return size== 0 ;
}
public E peek ( ) {
if ( isEmpty ( ) ) {
return null;
}
return ( E) stack[ size- 1 ] ;
}
public E pop ( ) {
E e = peek ( ) ;
stack[ size- 1 ] = null;
size-- ;
return e;
}
public E push ( E element) {
ensureCapacity ( size) ;
stack[ size++ ] = element;
return element;
}
public void ensureCapacity ( int size) {
int len = stack. length;
if ( size>= len) {
int newlen = 10 ;
stack = Arrays. copyOf ( stack, len+ newlen) ;
}
}
public static void main ( String[ ] args) {
MyStack< Integer> myStack = new MyStack < > ( ) ;
myStack. push ( 1 ) ;
myStack. push ( 3 ) ;
myStack. push ( 4 ) ;
myStack. push ( 8 ) ;
myStack. push ( 6 ) ;
myStack. push ( 3 ) ;
myStack. push ( 7 ) ;
myStack. push ( 0 ) ;
myStack. push ( 4 ) ;
myStack. push ( 3 )<