中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
文化| 铜鼓县| 离岛区| 嘉义县| 静乐县| 开远市| 焦作市| 安平县| 平度市| 吴旗县| 东乌| 宿松县| 桃源县| 会泽县| 巨鹿县| 宣恩县| 雷山县| 九龙县| 台湾省| 兴安盟| 襄汾县| 南涧| 芜湖县| 准格尔旗| 如东县| 池州市| 翼城县| 八宿县| 贺州市| 通许县| 文水县| 布拖县| 汪清县| 揭阳市| 安泽县| 定结县| 邯郸市| 聂荣县| 通道| 崇礼县| 夏邑县|