《演算法導論》裡實現的是無序雙向鍊錶。
原始檔 list.h:鍊錶的介面,定義鍊錶和結點的型別,以及鍊錶支援的操作。
typedef int data_type;
// 注意將結構宣告為新型別的語法
struct tagnode ;
typedef struct tagnode node;
typedef struct list;
list * list_create(void);
node * node_create(data_type k);
void list_destory(list*);
void list_print(list*);
node * list_search(list*, data_type);
void list_insert(list*, node*);
void list_delete(list*, node*);
原始檔 list.c:鍊錶的實現。
#include #include #include "list.h"
list * list_create(void)
node * node_create(data_type k)
void list_destory(list *list)
void list_print(list* list)
printf("\n");
}node * list_search(list *list, data_type k)
void list_insert(list *list, node *x)
void list_delete(list *list, node *x)
原始檔 list_test.c:測試資料。
#include #include "list.h"
int main(void)
演算法導論第10章 基本資料結構 10 1棧和佇列
1 棧實現了後進先出操作。在棧的陣列實現中,棧頂指標指向棧頂元素,插入時先修改指標再插入,刪除時先取棧頂元素再修改指標。當top s 0時,棧中空的。2 陣列棧的結構 int top 棧頂指標 int s 指向棧陣列 3 在棧上實現的操作 stack empty s 判斷棧是否為空 push s,x...
演算法導論 5 基本資料結構
最基本的資料結構 棧 佇列 鍊錶 二叉樹。這一篇主要實現前三種資料結構,記錄一部分習題的思路。這一篇比較簡單,但算是學習更高階資料結構的良好開端吧。先進後出。最主要的方法是push element 個pop 前者壓入乙個元素,後者彈出乙個元素。用陣列實現乙個簡單的棧。stack template c...
棧與佇列 第10章 基本資料結構
棧 後進先出 last in,first out,lifo 佇列 先進先出 first in,first out,fifo 壓入 push 無元素引數的delete pop s.top 不包含任何元素時,棧為空的。查詢棧是否為空時,用查詢操作 stack empty。對空棧執行彈出操作稱為下溢 un...