說明:陣列提供了連續記憶體空間的訪問和使用,而鍊錶是對記憶體零碎空間的有效組織和使用。鍊錶又分為單向鍊錶和雙向鍊錶,單向鍊錶僅提供了鍊錶的單方向訪問,相比之下,雙向鍊錶則顯得十分方便。
一.單向鍊錶的節點
1typedef
struct node
2 node;
二.雙向鍊錶的建立
頭插法和尾插法只看**比較難以與理解,建議畫出插入節點時的鍊錶變化圖則會非常容易理解,另外,個人認為頭插法較優,因為其插入邏輯一步到位,不像尾插法還需在後面完成雙向鍊錶的環狀連線。
1.頭插法
1 node * creatlist()2 19
return head;
20 }
2.尾插法
1 node * creatlist()2 19
//完成回環
20 cur->next = head;
21 head->pre = cur;
22return head;
23 }
三.雙向鍊錶的元素插入(頭插法)
插入方法:先讓插入的節點有所指向,再考慮指向它的指標,具體插入如下:
1void insertlist(node * head)
2
四.雙向鍊錶的查詢
既然是雙向鍊錶,其查詢方式也應該是是雙向查詢,比起單向鍊錶的單向查詢,雙向查詢同時從兩個方向進行查詢,加快了查詢的速度。
1 node * searchlist(node * head,int find)2 16
return null;
17 }
五.刪除某個節點
1void deletelist(node * pfind)
2 11 }
六.鍊錶排序(按值排序)
1void sortlist(node * head,int n)
2 16 p = p->next;
17 q = q->next;
18 }
19 }
20 }
七.鍊錶的銷毀
1void destroylist(node * head)
2 11 }
學習筆記18 C語言 檔案
二進位制檔案 儲存的是資料的補碼 file fopen const char path,const char mode 功能 開啟或者建立檔案 path 檔案的路徑 mode 開啟模式 r 以唯讀許可權開啟檔案,如果該檔案不存在則開啟失敗 r 在r的基礎上,增加寫許可權 w 以只寫許可權開啟檔案,如...
18 C語言 字串
在 c 語言中,字串實際上是使用 null 字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 hello 的字元數多乙個。char greeting 6 依據...
雙向鍊錶C語言
鍊錶結構定義 typedef struct node 建立鍊錶 int creat list struct node h h data 0 0 h llink null h rlink null return 1 清空鍊錶 int free list struct node h return 1 查...