// stk.c -- CopyLeft by tsaiwn@csie.nctu.edu.tw // 堆疊(Stack) 與 佇列(Queue; 排隊)是資料結構中很重要也很簡單的兩個 // 線性資料結構! // 以下例子主要在說明如何在純種 C 語言中實作出一個堆疊 (Stack), //至於堆疊的定義以及用途請參考計概課本或是資料結構課本, //或者用 google.com 找一找應該也可看到許多實例與說明 :-) // 注意何以變數要 static ? // ==> only can see by functions in this File ==> Information hiding! //#define NELEMENT 99 // OK enum{NELEMENT=99}; // better static int data[NELEMENT]; // why static ? static int stkptr = -1; // stack is empty // 以下三個函數宣告可有可無 void push(int); void pop(void); int top(void); ////// void push(int x) { stkptr++; data[stkptr] = x; } int top(void) { return data[stkptr]; } void pop(void) { if(stkptr> -1) --stkptr; } int empty(void){ return (stkptr <= -1) ;} int isfull(void){ return (stkptr >= NELEMENT-1);}