單鏈表介紹及其實現

2021-10-04 20:50:29 字數 1394 閱讀 4023

首節點:存放第乙個有效資料的結點;

尾結點:存放最後乙個有效資料的結點;尾指標指向;

頭結點:頭結點的資料型別和首結點的型別一模一樣;

頭結點是首節點前面的那個結點;

頭結點並不存放有效資料;

設定頭結點的目的是為了方便儲存資料;

單鏈表的插入實現邏輯:

step 1:s->next=p->next;

step 2:p->next=s ;

單鏈表的刪除實現邏輯:

刪除動作的核心語句(要借助輔助指標變數q):

q = p->next;

//首先儲存b的指標,靠它才能找到c;

p->next=q->next;

//將a、c兩結點相連,淘汰b結點;

free

(q) ; //徹底釋放b結點空間

以下**實現了鍊錶的插入,刪除,反轉,遍歷

#include

#include

#include

#define maxsize (10)

typedef

int elementtype;

typedef

struct node

*list;

list createlist

(void

)//建表,初始化為空

l->data =0;

l->next =

null

;return l;

}list initlist

(list l)

//初始化鍊錶

rear->next =

null;}

void

printlist

(list l)

//遍歷

printf

("\n");

}void

reverselist

(list l)

//反轉

l->next = head;

}void

deleteeven

(list l)

//刪除

else}}

void

insert

(list l)

//插入

tmp->next = q;

p->next = tmp;

}int

main

(void

)

執行結果如圖

單鏈表的快速排序演算法及其實現

演算法思想 對於乙個鍊錶,以head節點的值作為key,然後遍歷之後的節點,可以得到乙個小於key的鍊錶和大於等於key的鍊錶 由此遞迴可以對兩個鍊錶分別進行快速。這裡用到了快速排序的思想即經過一趟排序能夠將小於key的元素放在一邊,將大於等於key的元素放在另一邊 面試回答 如果面試官問快速排序是...

python單例模式及其實現

什麼是單例模式,為什麼要用單例模式,怎麼實現單例模式?只是我們今天要解決的三個問題。首先,第一點,什麼是單例模式?單例模式 singleton pattern 是一種常用的軟體設計模式,該模式的主要目的是確保某乙個類只有乙個例項存在。當你希望在整個系統中,某個類只能出現乙個例項時,單例物件就能派上用...

code及其實現

1.what is code?編碼並不是我隨便亂取的名字,其原理在資訊檢索導論第5章第3節有介紹,用於壓縮一連串有序的數字型別的資料非常有用。在mg中將 編碼歸類為全域性模型 mg更推崇區域性模型 其原理是將所有的資料分成兩部分連起來,第一部分為資料長度,第二部分為資料內容。這樣做的好處是對於很小的...