棧一共有兩種儲存結構
1.順序棧
2.鏈棧
順序棧用c語言描述是,因為不能確定整個過程中所需最大空間的大小,所以我們可以設乙個初始容量,在棧的空間不夠時在逐段擴大。
定義乙個順序棧
typedef
struct stack
stack;
基本操作初始化棧判空輸出棧
入棧出棧
輸出棧中元素個數
輸出棧頂元素
//初始化棧
void
initstack
(stack *s)
//判斷是否為空
bool isempty
(stack *s)
//輸出棧
void
show
(stack *s)}}
//入棧
void
push
(stack *s, elemtype x)
//出棧
void
pop(stack *s)
}//輸出棧中元素個數
void
getstacksize
(stack *s)
//返回棧頂元素
void
getfirstelem
(stack *s)
測試一下
測試**:
for
(int i =
0; i <
5; i++
)push
(&s, i)
;getfirstelem
(&s)
;getstacksize
(&s)
;show
(&s)
;
C語言 實現 順序棧
seqstack.h 標頭檔案宣告如下 include typedef int datatype 自定義資料型別,假定為整型 typedef struct seqstack 順序棧定義 seqstack typedef struct seqstack pseqstack 順序棧的指標型別 建立乙個容...
C語言實現順序棧
順序棧,就是用一組位址連續的儲存單元來存放棧元素,然後用乙個棧結構去維護乙個棧。在c中,可用動態開闢的陣列去表示,維護的棧結構需要有乙個棧底和乙個棧頂指標。因為開闢乙個陣列需要事先知道它的大小,所以棧結構裡就必須還有乙個整型變數來表示當前棧的儲存容量,再可定義乙個變數用來擴充棧的最大容量。實現如下 ...
C語言實現順序棧
棧和佇列是兩種重要的線性結構。從資料結構的角度看,棧和佇列也是線性表,其特殊性在於棧和佇列的操作位置都在特定的位置。引用自嚴蔚敏的資料結構與演算法教材 棧的結構體定義 typedef struct stack sqstack 和鍊錶類似 我們首先要初始化順序棧 sqstack initsqstack...