亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java順序棧的實現代碼怎么寫

小億
89
2023-11-14 01:26:53
欄目: 編程語言

以下是一個簡單的Java順序棧的實現代碼:

public class SeqStack<T> {
    private int maxSize; // 棧的最大容量
    private int top; // 棧頂指針
    private Object[] stackArray; // 存儲元素的數組

    // 構造方法
    public SeqStack(int maxSize) {
        this.maxSize = maxSize;
        this.top = -1; // 初始化棧頂指針為-1
        this.stackArray = new Object[maxSize];
    }

    // 入棧操作
    public void push(T element) {
        if (isFull()) {
            throw new RuntimeException("Stack is full!");
        }
        stackArray[++top] = element;
    }

    // 出棧操作
    public T pop() {
        if (isEmpty()) {
            throw new RuntimeException("Stack is empty!");
        }
        @SuppressWarnings("unchecked")
        T element = (T) stackArray[top];
        stackArray[top--] = null; // 將棧頂元素置為null,便于垃圾回收
        return element;
    }

    // 獲取棧頂元素
    public T peek() {
        if (isEmpty()) {
            throw new RuntimeException("Stack is empty!");
        }
        @SuppressWarnings("unchecked")
        T element = (T) stackArray[top];
        return element;
    }

    // 判斷棧是否為空
    public boolean isEmpty() {
        return top == -1;
    }

    // 判斷棧是否已滿
    public boolean isFull() {
        return top == maxSize - 1;
    }

    // 獲取棧的大小(當前元素個數)
    public int size() {
        return top + 1;
    }
}

可以使用以下代碼測試順序棧的功能:

public class Main {
    public static void main(String[] args) {
        SeqStack<Integer> stack = new SeqStack<>(5);
        
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);
        stack.push(5);
        
        System.out.println("棧頂元素:" + stack.peek()); // 輸出:5
        
        stack.pop();
        stack.pop();
        
        System.out.println("棧頂元素:" + stack.peek()); // 輸出:3
        
        System.out.println("棧是否為空:" + stack.isEmpty()); // 輸出:false
        System.out.println("棧的大小:" + stack.size()); // 輸出:3
    }
}

運行結果為:

棧頂元素:5
棧頂元素:3
棧是否為空:false
棧的大小:3

這個代碼實現了一個簡單的順序棧,并提供了入棧、出棧、獲取棧頂元素、判斷棧是否為空、判斷棧是否已滿、獲取棧的大小等功能。

0
荣昌县| 四川省| 通州市| 遂宁市| 娱乐| 珠海市| 晋州市| 五指山市| 邓州市| 刚察县| 左云县| 定南县| 通江县| 西林县| 商南县| 金阳县| 大竹县| 富顺县| 通许县| 许昌市| 虹口区| 灵石县| 榆林市| 舞阳县| 婺源县| 凌海市| 策勒县| 上杭县| 清苑县| 罗源县| 边坝县| 鄂尔多斯市| 台北县| 肥西县| 建水县| 海伦市| 钟祥市| 峨眉山市| 宜兰县| 涟水县| 肥东县|