C語言實現鍊錶的相關操作

2021-06-25 08:32:27 字數 1893 閱讀 5284

自己動手寫一遍鍊錶的的一些常見的操作有利於自己對鍊錶這種資料結構的掌握。

一下是我自己碼的,進作為參考。

/*  鍊錶  */

struct note ;

#include #include #define num 10

void creat_list_head(struct note *); /* 建立乙個單鏈表(前插) */

void creat_list_foot(struct note *); /* 建立乙個單鏈表(後插)*/

void print_list(struct note *); /* 列印乙個單鏈表 */

int search_order(struct note *, int); /* 按序號查詢單鏈表 */

struct note *search_value(struct note *, int); /* 按值查詢單鏈表 */

void delete_list(struct note *, int); /* 刪除單鏈表某個元素 */

void insert_list(struct note *, int, int); /* 單鏈表中插入某個元素 */

void total_delete(struct note *); /* 刪除整個個鍊錶 */

bool circle_list(struct note *); /* 判斷乙個鏈中是否有環 */

int main()

/* * 建立乙個單鏈表 前插法

*/void creat_list_head(struct note *head)}/*

* 建立乙個單鏈表 後插法

*/void creat_list_foot(struct note *head)}/*

* 列印單鏈表

*/void print_list(struct note *head)}/*

* 鍊錶的查詢 序號查詢 查詢第 i 個元素

*/int search_order(struct note *head, int i)

return !p ? -1 : p->count; /* 如果 p 是空指標 */}/*

* 鍊錶的查詢 按值查詢 查詢值 n

*/struct note *search_value(struct note *head, int n)

/* * 鍊錶的刪除 刪除第 i 個元素 注意: 首先要找到第 i-1 個元素

*/void delete_list(struct note *head, int i)

/* * 鍊錶的插入 將 n 插到第 i-1 個元素的後面 注意: 首先要找到第 i-1 個元素

*/void insert_list(struct note *head, int i, int n)

/* * 刪除整個鍊錶

*/void total_delete(struct note *head)}/*

* 判斷乙個鍊錶中是否有環

*/bool circle_list(struct note *head)

if (temp1 == temp2)

return true;

return false;

}

以上只是單鏈表的操作,我覺得其他的鍊錶都差不多就沒有再花時間去邊,以後遇到了在慢慢摸索,其實原理都差不多。

希望互相學習,共同進步。

C語言實現鍊錶基本操作

之前說過順序表的基本操作。顯然,順序表有乙個很大的缺點,就是做插入刪除操作的時候,往往要做很大量的元素移動的操作。這裡我們討論另外一種線性表的表示方法 鏈式儲存結構。由於它不需要邏輯上的相鄰的元素在物理位置上也相鄰,因此它沒有順序儲存結構所具有的弱點,但是同時也失去了順序表的可隨機訪問的有點。inc...

鍊錶的基本操作(C語言實現

鍊錶的基本操作 c語言實現 include include define ok 1 define error 0 typedef int elemtype typedef int status typedef struct lnodelnode,linklist status initlist l ...

鍊錶的實現與操作 C語言實現

鍊錶的基本概念 表頭結點 鍊錶中的第乙個結點 包含指向第乙個資料元素的指標以及 鍊錶自身的一些資訊 資料結點 鍊錶中代表資料元素的結點 包含指向下乙個資料元素的指 針和資料元素的資訊 尾結點 鍊錶中的最後乙個資料結點 其下一元素指標為空 表示無 後繼 標頭檔案 ifndef linklist h d...