順序棧:
#include
#include
#include
#include
#include
#define stacksize 10
typedef struct stack
stack;
bool isempty(stack *ps)
void push(int num, stack *ps)
int pop(stack *ps)
else
return 0;
}void show(int hanois, stack *ps1, stack *ps2, stack *ps3)
printf("-----------------/n");
}void towers_of_hanoi(int hanois, stack *ps1, stack *ps2, stack *ps3)
}void init(stack *ps, int hanois)
static stack s1, s2, s3;
init(&s1, hanois);
init(&s2, 0);
init(&s2, 0);
show(hanois, &s1, &s2, &s3);
towers_of_hanoi(hanois, &s1, &s2, &s3);
show(hanois, &s1, &s2, &s3);
return 0;
}鏈棧實現:
#include
#include
#include
typedef struct stack
stack;
void push(int num, stack **p2top)
int pop(stack **p2top)
else
return 0;
return ret;
}void show(int hanois, stack *top1, stack *top2, stack *top3)
}void init(stack **p2top, int hanois)
順序棧和鏈棧實現
以前參照weiss的 資料結構與演算法分析 寫過兩篇隨筆 因為考研的緣故,現在看了嚴蔚敏的 資料結構 c版 也跟著寫了一遍,原理都類似 鏈棧 鏈棧 typedef status typedef struct node stack typedef struct node ptrtonode struc...
棧的實現 順序棧和鏈棧
本文主要給出我對棧的實現,包括順序棧和鏈棧兩種實現方式。common.h ifndef common h define common h 函式結果狀態碼 define true 1 define false 0 define ok 1 define error 0 define infeasible...
C 實現順序棧和鏈棧
順序棧和鏈棧分別類似於順序表和單鏈表,只是由於棧的first in last out性質,其操作相對簡單,是順序表和單鏈表的子集。鏈棧中的鏈不使用head屬性,這一屬性是多餘的,使用鏈棧類的topnode屬性即可。另外,為了避免每次返回鏈棧的長度都要遍歷所有結點,在鏈棧類中增加num屬性,push操...