實現鏈式棧

2021-07-03 11:50:50 字數 701 閱讀 9481

棧作為一種資料結構,它按照後進先出的原則儲存資料,只能在棧頂進行插入和刪除操作的特殊線性表。

按照儲存方式不同,棧可以分為順序棧和鏈式棧。

實現鏈式棧需要注意:

(1)採用鍊錶儲存結構;

(2)不需要預定義記憶體空間,不存在「鏈式棧滿」這種情況;

(3)解決了順序棧中沒有合理分配記憶體大小的難題。

以下為具體實現**, 在vs2010上測試通過:

#include 

#include

struct node

;class mystack

;int _tmain(int argc, _tchar* argv)

int x;

int nsize;

while(!sta.empty())

return0;}

mystack::mystack()

bool mystack::empty()

bool mystack::gettopelement(int &x)

}bool mystack::push(int x)

bool mystack::pop()//該函式容易出錯

}int mystack::size()

mystack::~mystack()//逐個釋放棧中的元素

棧 鏈式棧的實現

一 2 對於棧而言,通常允許插入 刪除操作的一端被稱為棧頂 top 另一端被稱為棧底 buttom 3 從棧頂壓入元素稱為進棧 push 4 從棧頂刪除元素稱為出棧 pop 棧是一種先進後出的線性表.二 可以採用單鏈表來儲存棧中的所有元素,這種結構的棧被稱為鏈棧。對於鏈棧而言,棧頂元素不斷改變,程式...

Java實現鏈式棧

陣列 鍊錶 樹等資料結構適用於儲存資料庫應用中的資料記錄,它們常常用於記錄那些現實世界的物件和活動的資料,便與資料的訪問 插入 刪除和查詢特定資料項 而棧和佇列更多的是作為程式設計師的工具來使用。他們主要作為構思演算法的輔助工具,而不是完全的資料儲存工具。這些資料結構的生命週期比那些資料庫型別的結構...

鏈式棧的實現

棧相比於鍊錶,它是一種特殊的資料模型,兩者既有聯絡 通過鍊錶的api函式可以改造出棧的api函式,這其中的原因在於兩者的底層邏輯是有相似的地方的,即 通過在鍊錶的頭部操作元素,就可以模擬出棧 區別在於,鍊錶和棧之間的對變數生命週期的管理不一樣 在實現棧的過程中,我們不可避免的用到了鍊錶的api函式 ...