用c語言的指標實現了棧中的幾項基本操作:新建棧,置空棧,進棧,彈棧,返回棧頂。
因為棧遵循後進先出的原則,所以我們的所有操作都是對於棧頂進行的。像上篇中單項鍊表的實現一樣,在真正棧頂之前加上空節點指向它,將會便於對棧頂的操作。
用結構體指標定義棧:
1 typedef structnode
2node;
67 typedef node * stack;
新建棧:
1 stack makestack(void)//新建棧並返回棧頂
2
進棧:
1void push(stack s, char c)//
將新節點壓入棧
2
彈棧:
1void 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...