棧的C語言實現

2023-02-08 00:25:52 字數 597 閱讀 6313

用c語言的指標實現了棧中的幾項基本操作:新建棧,置空棧,進棧,彈棧,返回棧頂。

因為棧遵循後進先出的原則,所以我們的所有操作都是對於棧頂進行的。像上篇中單項鍊表的實現一樣,在真正棧頂之前加上空節點指向它,將會便於對棧頂的操作。

用結構體指標定義棧:

1 typedef struct

node

2node;

67 typedef node * stack;

新建棧:

1 stack makestack(void)//

新建棧並返回棧頂

2

進棧:

1

void push(stack s, char c)//

將新節點壓入棧

2

彈棧:

1

void pop(stack s)//

將棧頂彈出

2

返回棧頂:

1 stack findhead(stack s)//

返回棧頂

2

問題們:

需不需要加入棧底節點?這麼做會帶來什麼好處嗎?

棧的C語言實現

一個棧的c語言實現,函式宣告放在 stack.h標頭檔案彙總,函式定義放在 stack.c 中,main.c 用來測試各個函式.1.檔案 stack.h stack.h ifndef stack h define stack h typedef int datatype typedef struct...

C語言 棧的實現

棧 stack 又名堆疊,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧 入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素 從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元...

棧的C語言實現

include stdio.h include stdlib.h include string.h include windows.h struct stack node typedef struct stack node ptrtonode typedef ptrtonode stack stac...