《演算法導論》第10章 基本資料結構 2 鍊錶

2021-08-26 18:32:02 字數 1048 閱讀 8930

《演算法導論》裡實現的是無序雙向鍊錶

原始檔 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...