鏈式棧模板

2021-09-27 13:43:00 字數 762 閱讀 5251

全部資料結構、演算法及應用課內模板:

鏈式棧模板如下:(最後有stl stack的講解,記得去看哦~)

templateclass linknode

linknode(const t &x,linknode*p=0):data(x),next(p){}

};templateclass linkstack

~linkstack()

void clear()

size=0;

} bool push(const t item)

bool pop(t & item)

bool top(t &item)

};

c++ stl stack:(操作很少也很簡單,無迭代器)

#include stacksk;

sk.push(x);

sk.emplace(x);//均是在棧頂插入,後者更好,具體不多說了,可以去看博主的stl鍊錶講解

sk.pop();//棧頂彈出乙個元素,但不返回

sk.top();//返回棧頂元素的引用

sk.size();

sk.empty();

sk.swap(sk2);//棧與棧的交換,其實直接用普通的swap函式也一樣

//沒有clear操作就很奇怪

然後有人說博主你為啥起名叫sk不叫st呢

畢竟人家有set,區分一下還是比較好的

實現鏈式棧

棧作為一種資料結構,它按照後進先出的原則儲存資料,只能在棧頂進行插入和刪除操作的特殊線性表。按照儲存方式不同,棧可以分為順序棧和鏈式棧。實現鏈式棧需要注意 1 採用鍊錶儲存結構 2 不需要預定義記憶體空間,不存在 鏈式棧滿 這種情況 3 解決了順序棧中沒有合理分配記憶體大小的難題。以下為具體實現 在...

鏈式結構棧

三 佇列的鏈式儲存結構 單鏈表 1 定義 1.使用有頭結點的單鏈表來模擬 2.使用head和rear指標來模擬佇列 3.head為佇列頭的前乙個節點,rear為隊尾節點 2 隊尾插入操作 在rear後面插入元素 3 刪除隊頭元素 刪除fhead的下乙個元素 如果刪除前只有乙個元素,那麼在刪除後要讓r...

順序棧和鏈式棧

順序棧 採用順序儲存結構的棧 push pop peek 方法的時間複雜度為o 1 當需要擴充棧容量時push 方法的時間複雜度為o n package com.lzw.demo.stacktest public inte ce sstack package com.lzw.demo.stackte...