寫教程,想要說明白面向過程和物件導向的區別,想用stack作為最簡單的例子。網上搜尋c stack頭幾個寫得亂七八糟。乾脆自己動手寫個。
***********************************====stack.c****************************************====
#include
#include
typedef struct
stack;
void init(stack* st, int capacity)
void destory(stack* st)
} int isfull(stack* st)
void push(stack* st, int val)
int isempty(stack* st)
int pop(stack* st)
int size(stack* st)
int capacity(stack* st)
void print(stack* st)
else
printf("\n"); }
}int main()
isempty(&st) ? printf("stack is empty\n") : printf("stack is not empty\n");
isfull(&st) ? printf("stack is full\n") : printf("stack is not full\n");
for (i = 0; i < 5; i++)
isempty(&st) ? printf("stack is empty\n") : printf("stack is not empty\n");
isfull(&st) ? printf("stack is full\n") : printf("stack is not full\n");
printf("capacity of stack is %d, size of statck is %d\n", capacity(&st), size(&st));
print(&st);
destory(&st);
return 0; }
純c實現堆疊
上頭檔案 ifndef my stack h define my stack h ifdef cplusplus extern c mystack void initstack mystack s,int size,freefunc freef 初始化乙個大小為size的棧 void destroy...
C 棧 stack 的模板類實現
1.基本概念 棧中的元素遵守 先進後出 的原則 lifo,last in first out 只能在棧頂進行插入和刪除操作 壓棧 或推入 進棧 即push,將資料放入棧頂並將棧頂指標加一 出棧 或彈出 即pop,將資料從棧頂刪除並將棧頂指標減一 棧的基本操作有 pop,push,判斷空,獲取棧頂元素...
棧(Stack)的C語言實現
棧 stack 實現的是乙個後進先出策略。元素彈出的順序正好和它們壓入的次序相反。s.top表示棧頂元素,s.size表示棧的大小。如果試圖對乙個s.top 0的棧進行彈出操作,則稱棧下溢。如果s.top超過了s.size,則稱棧上溢。這裡使用動態分配記憶體的方式實現棧,並可以動態的調整棧的大小,如...