棧 - Stack

基本概念

棧是一種數(shù)據(jù)結(jié)構(gòu),類似一個(gè)箱子:每次往棧中添加元素,都是向棧頂添加;每次從棧中拿出元素,也是從棧頂拿走。棧有著先進(jìn)后出的規(guī)律。

實(shí)現(xiàn)

  • 通過ArrayList實(shí)現(xiàn)棧
public class Stack {
    private List<Integer> array = new ArrayList<>();
    // 入棧
    public void push(int x) {
        array.add(x);
    }
    // 出棧
    public void pop() {
        int n = array.size();
        if (n > 0) {
            array.remove(n - 1);
        }
    }
    // 返回棧頂元素
    public int top() {
        int n = array.size();
        if (n > 0) {
            return array.get(n - 1);
        } else {
            return -1;
        }
    }
    public boolean isEmpty() {
        return array.size() == 0;
    }
}
  • Java內(nèi)置Stack類
Stack<Integer> s = new Stack<>();
s.size(); // 返回棧的大小
s.peek; // 返回棧頂元素,但不彈出棧頂元素
s.push(); // 入棧
s.pop(); // 出棧,并返回彈出元素

Lintcode 相關(guān)練習(xí)

Implement Stack by Two Queues
Valid Parentheses
Min Stack
Largest Rectangle in Histogram
Evaluate Reverse Polish Notation

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容