91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
中卫市| 开封县| 昌图县| 鲁山县| 依安县| 临夏县| 曲靖市| 久治县| 内黄县| 宁武县| 尖扎县| 拜泉县| 巨野县| 昌宁县| 策勒县| 中牟县| 宜昌市| 龙里县| 翼城县| 祁门县| 霞浦县| 武穴市| 孝昌县| 彩票| 马龙县| 台东市| 木兰县| 嘉定区| 丹东市| 河北省| 丹棱县| 淮北市| 星座| 营山县| 泰州市| 客服| 阳江市| 池州市| 辽阳县| 贵定县| 六安市|