資料結構 堆疊

2022-07-20 10:18:11 字數 1503 閱讀 9641

1

/*stack.h */2

#ifndef _stack_h

3#define _stack_h45

struct

nodestack;

6 typedef struct nodestack *ptrtonode;

7typedef ptrtonode stack;

8 typedef char

elementtype;910

intstackisempty(stack s);

11 stack createstack(void

);12

void

disposestack(stack s);

13void

makeempty(stack s);

14void

push(elementtype x, stack s);

15elementtype top(stack s);

16void

pop(stack s);

1718

//stack implementation is a linked list with a header

19struct

nodestack20;

2425

#endif

1

/*stack.cpp

*/2 #include "

stack.h

"3 #include 4 #include 5

6int

stackisempty(stack s)710

11//

建立乙個空棧, 只需建立乙個頭結點

12 stack createstack(void)13

23//

清空棧24

void

makeempty(stack s)

2532

33//

push 操作, 在鍊錶的前端插入

34void

push(elementtype x, stack s)

3547}48

49//

top 操作, 返回棧頂元素

50elementtype top(stack s)

5158

59//

pop 操作, 通過刪除表的前端元素實現

60void

pop(stack s)

6172 }

1 #include 2 #include 3 #include "

stack.h"4

void

main()514

while(!stackisempty(stackchar))

1519 }

參考:

資料結構 堆疊

對於棧,想必大家都十分熟悉了,也能很快的答出棧是乙個先進後出的佇列。但是在平常程式設計的生活中應用的十分少。在acm中,棧是一種十分重要的資料結構 其他領域也一樣 我們可以用這種資料結構解決一些十分棘手的問題,大大提高了程式的效率。有這樣一道名為software bugs 的題。題目的意思簡要來說就...

資料結構 堆疊

引入 多項式計算問題 例如 62 3 42 62 6 2 3 33 3 3 0 042 4 2 8 僅計算最近的兩個數 08 0 8 8 結束 需要某種方式 順序儲存,倒序輸出 堆疊 堆疊 具有操作約束性的線性表 入棧void push stack s,elementtype x else 出棧 e...

資料結構 堆疊

可以認為具有一定約束的線性表,其插入和刪除都作用於棧頂 top 的端點位置。且最 棧的資料最先彈出。壓入棧 push 插入資料 彈出棧 pop 取出 刪除 資料 型別名稱 堆疊 stack 資料物件集 乙個有0個或多個元素的有窮線性表 操作集 對於乙個具體的長度為正整數的maxsize的堆疊s st...