我会走向何方

我又该走向何方

BlogJava 首页 新随笔 联系 聚合 管理
  15 Posts :: 2 Stories :: 17 Comments :: 0 Trackbacks

 

package  com.fangq.collections;
/**
 * 后进先出
 * 自动扩容2倍
 * 
@author  new
 *
 
*/

public   class  Stack  {
    
private  Object[] stack;
    
private   int  max;
    
private   int  top;
    
public  Stack() {
        stack 
=   new  Object[ 20 ];
        max 
=   20 ;
        top 
=   - 1 ;
    }

    
public  Stack( int  s) {
        stack 
=   new  Object[s];
        max 
=  s;
        top
=- 1 ;
    }

    
public   void  push(Object o)  throws  Exception {
        
if (o == null )
            
throw   new  Exception( " 不允许空值 " );
        top
++ ;
        
if (top > max - 1 ) {
            System.out.println(
" 开始扩容 " );
            max 
=  max * 2 ;
            Object[] oldStack 
=  stack;
            Object[] newStack 
=    new  Object[max];
            System.arraycopy(oldStack,
0 ,newStack, 0 ,top);
            stack 
=  newStack;
        }

        System.out.println(
" top=====> " + top);
        System.out.println(
" max=====> " + max);
        stack[top] 
=  o; 
    }

    
public  Object pop() {
        
return  stack[top -- ];
    }

    
public   static   void  main(String[] args) {
        Stack s 
=    new  Stack( 10 );
        
try {
            
for ( int  i = 1 ;i < 22 ;i ++ ) {
                s.push(String.valueOf(i));
            }

            System.out.println(s.pop());
            System.out.println(s.pop());
        }
catch (Exception e) {
            e.printStackTrace();
        }

    }

}

posted on 2006-08-26 09:35 hama 阅读(213) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: