<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 97,  comments - 93,  trackbacks - 0

    com.ibm.nicky.stack--
                                  ++ExceptionStackEmpty
                                  ++Stack
                                  ++StackInterface  
                                  ++TestStack
    ********************************************************************************************

     1package com.ibm.nicky.stack;
     2
     3/**
     4 * @author QuQiang
     5 *
     6 *  Try to use pop(top) method when the Stack is null, ExceptionStackEmpty.
     7 */

     8public class ExceptionStackEmpty extends Exception{
     9     public ExceptionStackEmpty(String e){
    10      super(e);
    11     }

    12     
    13     private static final long serialVersionUID = 4983277878327382L;// Enable at once but have no impact on the sub-class
    14}

    15

     1package com.ibm.nicky.stack;
     2
     3/**
     4 * @author QuQiang
     5 *
     6 */

     7public class Stack<E> implements StackInterface<E> {
     8    
     9    private final static int CAPACITY = 1024// The default capacity of Stack  
    10    private int capacity = 0// The current capacity of Stack
    11    private Object[] element; // E array
    12    private int toppiont = -1// the current top piont 
    13
    14    public Stack(){
    15        this(CAPACITY);
    16    }

    17    public Stack(int cap){
    18        capacity = cap ;
    19        element = new Object[capacity];
    20    }

    21    /* (non-Javadoc)
    22     * @see com.ibm.nicky.stack.Stack#getSize()
    23     */

    24    public int getSize() {
    25        return (toppiont+1);
    26    }

    27
    28    /* (non-Javadoc)
    29     * @see com.ibm.nicky.stack.Stack#isEmpty()
    30     */

    31    public boolean isEmpty() {
    32        return (toppiont<0);
    33    }

    34
    35    /* (non-Javadoc)
    36     * @see com.ibm.nicky.stack.Stack#pop()
    37     */

    38    public E pop() throws ExceptionStackEmpty {
    39        E TopPiontValue;
    40        if(isEmpty()){
    41            throw new ExceptionStackEmpty("Stack is Empty");
    42        }

    43        TopPiontValue = (E) element[toppiont];
    44        element[toppiont--= null;
    45        return TopPiontValue;
    46    }

    47
    48    /* (non-Javadoc)
    49     * @see com.ibm.nicky.stack.Stack#push()
    50     */

    51    public void push(E object) {
    52        if(getSize() == capacity){
    53            creatNew();
    54        }

    55        element[++toppiont] = object;
    56    }

    57
    58    /* (non-Javadoc)
    59     * @see com.ibm.nicky.stack.Stack#top()
    60     */

    61    public E top() throws ExceptionStackEmpty {
    62        if(isEmpty()){
    63            throw new ExceptionStackEmpty("Stack is Empty");
    64        }

    65        return (E)element[toppiont];
    66    }

    67    
    68    private Object creatNew(){
    69        int size = 0;
    70        if(capacity == 0){
    71            size = 1;
    72        }
    else{
    73            size = CAPACITY;  // Not optimized method
    74        }

    75
    76        Object[] temp = new Object[element.length+size];
    77        System.arraycopy(element, 0, temp, 0, element.length);
    78        element = temp;
    79        System.out.println("hava invoke this createNew");
    80        System.out.print("the current size of the Stack is :"+ element.length);
    81        return element;
    82    }

    83
    84}

    85

     1package com.ibm.nicky.stack;
     2
     3/**
     4 * @author QuQiang
     5 * 
     6 * Stack ADT interface
     7 */

     8public interface StackInterface<E> {
     9    /**
    10     * @return boolean if the Stack is empty.
    11     */

    12    public boolean isEmpty();
    13
    14    /**
    15     * @return int, the Size of the Stack.
    16     */

    17    public int getSize();
    18
    19    /**
    20     * 
    21     * @return the Object of the Stack top but not delete it.
    22     * @throws ExceptionStackEmpty
    23     *             the Stack is empty
    24     */

    25    public E top() throws ExceptionStackEmpty;
    26
    27    /**
    28     * 
    29     * @return the Object of the Stack top but delete it.
    30     * @throws ExceptionStackEmpty
    31     *             the Stack is empty
    32     */

    33    public E pop() throws ExceptionStackEmpty;
    34
    35    /**
    36     * push a object to the Stack top.
    37     */

    38    public void push(E object);
    39}

    40

     1package com.ibm.nicky.stack;
     2
     3/**
     4 * @author QuQiang
     5 *
     6 */

     7public class TestStack {
     8
     9  public static void main(String[] args){
    10      Stack<Integer> testStack = new Stack<Integer>(2);
    11      
    12      testStack.push(21);
    13      testStack.push(12);
    14      testStack.push(-9);
    15      
    16      try {
    17        System.out.println("testStack.top()="+testStack.top());
    18          System.out.println("testStack.pop()="+testStack.pop());
    19          System.out.println("testStack.top()="+testStack.top());
    20    }
     catch (ExceptionStackEmpty e) {
    21        e.printStackTrace();
    22    }

    23  }

    24}
    posted on 2007-08-03 18:14 wqwqwqwqwq 閱讀(997) 評(píng)論(0)  編輯  收藏 所屬分類: Data Structure && Algorithm
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678




    常用鏈接

    留言簿(10)

    隨筆分類(95)

    隨筆檔案(97)

    文章檔案(10)

    相冊(cè)

    J2ME技術(shù)網(wǎng)站

    java技術(shù)相關(guān)

    mess

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    校園夢(mèng)網(wǎng)網(wǎng)絡(luò)電話,中國最優(yōu)秀的網(wǎng)絡(luò)電話
    主站蜘蛛池模板: 91热久久免费精品99| 亚洲日本va一区二区三区| 亚洲成AV人片在线播放无码| 亚洲香蕉网久久综合影视| 亚洲国产精品自在拍在线播放| 国产成人免费a在线视频app| 国产视频精品免费| 四虎精品亚洲一区二区三区| 又黄又大又爽免费视频| 亚洲精品和日本精品| 色久悠悠婷婷综合在线亚洲| 日韩一卡2卡3卡4卡新区亚洲| 亚洲日本va中文字幕久久| 亚洲乱亚洲乱妇无码麻豆| 亚洲成A人片777777| 亚洲∧v久久久无码精品| 91亚洲国产成人久久精品网站| 1区1区3区4区产品亚洲| 亚洲噜噜噜噜噜影院在线播放| 激情综合亚洲色婷婷五月| 亚洲av午夜电影在线观看| 国产99久久亚洲综合精品| 亚洲精品偷拍视频免费观看| 97在线免费视频| 7m凹凸精品分类大全免费| 在线观看AV片永久免费| 日本免费电影一区| 亚洲午夜成人精品电影在线观看| 国产亚洲人成网站在线观看不卡| 亚洲国产精品久久久久久| 亚洲嫩草影院在线观看| 亚洲精品av无码喷奶水糖心| 九九九国产精品成人免费视频| 久久精品成人免费看| 99久久99久久精品免费看蜜桃| 国产一级高清免费观看| 亚洲人成中文字幕在线观看| 亚洲免费闲人蜜桃| 美女被免费网站视频在线| 午夜不卡久久精品无码免费| 亚洲中文无码永久免费|