資料結構之棧的鏈式儲存7 (入棧,出棧等

2021-07-05 06:55:05 字數 995 閱讀 3087

本次操作採用不帶頭結點的頭插法,方便在棧頂進行入棧和出棧操作

**如下

//棧只限於在末尾插入或者刪除,建立頭插法不帶頭結點方法較簡單實現

#include #include using namespace std;

templatestruct node;

templateclass linkstack //構造空棧

~linkstack();

void push(t x); //元素入棧

t pop(); //元素出棧

t gettop(); //獲取棧頂元素

bool stackempty(); //檢測棧是否為空

int stacklength(); //測定棧長度

void stacktranverse(); //遍歷棧中元素

};//元素入棧(不檢查棧滿情況對比順序儲存結構)

templatevoid linkstack::push(t x)

//元素出棧

templatet linkstack::pop()

//獲取棧頂元素

templatet linkstack::gettop()

//測定棧長度

templateint linkstack::stacklength()

return cnt;

}//檢測棧是否為空

templatebool linkstack::stackempty()

//遍歷棧中元素

templatevoid linkstack::stacktranverse()

cout << endl;

}templatelinkstack::~linkstack()

}int main()

執行結果如下

C語言鏈式儲存結構棧的出棧和入棧

棧的鏈式儲存結構就是使用鍊錶儲存棧中資料元素,此時的棧稱為鏈棧。通常採用帶頭結點的單鏈表儲存棧。棧的操作許可權在棧頂進行,可將頭節點指標指向棧頂節點,如用top指標指向頭結點,稱為top結點。a n 1 a1a0 圖1.1 棧的邏輯結構 圖1.2 棧的鏈式儲存結構 struct node tpede...

資料結構 棧的入棧 出棧序列

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等 例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。思路 每次將入棧序列乙個元素入棧...

資料結構 棧之鏈式儲存

跟鍊錶結構一樣,只是多了條限制 只能從煉表頭插入和刪除。原始碼 include include include include 棧的鏈式儲存 typedef struct data typedef struct stack 初始化空棧 void initstack stack s 判斷是否為空棧 i...