自己用Java實現一個“棧”類,包括push和pop基本操作

“棧”是一種“後進先出”的方式存放數據的數據結構。
棧的簡單介紹
今天小樹動手寫了一個簡單的棧類(存儲int值),代碼如下:
(1)StackOfInteger類:


public class StackOfIntegers {
    private int[]elements;
    private int elementSize;
    private final static int DEFAULT_CAPACITY=10;
    public StackOfIntegers(int capacity)
    {
        elements=new int[capacity];
    }
    public StackOfIntegers()
    {
        this(DEFAULT_CAPACITY);
    }
    public void push(int value)//進棧
    {
        if(elementSize>elements.length)
        {
            int []temp=new int[elements.length*2];
            System.arraycopy(elements, 0, temp, 0, elements.length);
            elements=temp;
        }
        elements[elementSize++]=value;
    }
    public int pop()//出棧,出棧前必須調用empty()判斷棧是否爲空
    {
        return elements[--elementSize];
    }
    public boolean empty()//判斷棧是否爲空
    {
        return elementSize==0;
    }
    public int getSize()//獲取棧中元素個數
    {
        return elementSize;
    }
    public int peek()//獲取當前棧頂元素
    {
        return elements[elementSize-1];
    }
}

(2)調用StackOfInteger進行棧的操作:

import java.util.*;

public class StackOfIntegerTest {
    public static void main(String []args){
        StackOfIntegers stack=new StackOfIntegers(15);
        int []A=new int [15];
        for(int i=0;i<A.length;i++)
        {
            A[i]=i;
        }
        for(int j=0;j<A.length;j++)
        {
            stack.push(A[j]);
        }
        while(!stack.empty())
        {
            System.out.print(stack.pop()+" ");
        }
    }
}

運行結果:

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
發佈了20 篇原創文章 · 獲贊 37 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章