資料結構 鏈棧

2021-09-28 21:10:33 字數 1148 閱讀 7401

#include

#include

using

namespace std;

#define overflow -2

#define ok 1

#define error -1

typedef

int status;

typedef

int selemtype;

typedef

struct stacknode stacknode,

* linkstack;

// 鏈棧初始化

void

initstack

(linkstack& s)

// 判斷鏈棧是否為空

status stackempty

(linkstack s)

// 獲取棧頂元素

status gettop

(linkstack s, selemtype& e)

// 獲取鏈棧長度

intgetlength

(linkstack s)

return i;

}// 入棧

status push

(linkstack& s, selemtype e)

// 出棧

status pop

(linkstack& s, selemtype& e)

// 建立棧

void

create

(linkstack& s,

int m)

}// 輸出棧

void

output

(linkstack s)

cout << endl;

}int

main()

請輸入鏈棧的長度: 3

請輸入第1個元素: 5

請輸入第2個元素: 6

請輸入第3個元素: 7

棧中元素為: 7 6 5

棧頂元素為: 7

棧的長度為: 3

請輸入入棧的元素: 9

棧中元素為: 9 7 6 5

彈出的元素為: 9

棧的長度為: 3

棧中元素為: 7 6 5

資料結構 棧 鏈棧

棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...

資料結構 鏈棧

編寫乙個程式,實現鏈棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化鏈棧s 2 判斷鏈棧s是否非空 3 依次進鏈棧元素a,b,c,d,e 4 判斷鏈棧s是否非空 5 輸出鏈棧長度 6 輸出從棧頂到棧底元素 7 輸出出鏈棧序列 8 判斷鏈棧s是否非空 9 釋放鏈棧。inclu...

資料結構 鏈棧

鏈式儲存的棧稱為鏈棧,結構如下圖 鏈棧無滿棧問題,空間可擴充,但有棧空問題,棧空的條件為top next null。進棧與入棧僅在棧頂進行,鏈式棧的棧頂在棧表頭。鏈棧的定義如下 struct stacknode class stack 建立頭結點 stack void push int item 入...