順序棧和鏈棧實現漢洛塔

2021-05-25 03:27:25 字數 1087 閱讀 9739

順序棧:

#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操...