資料結構(四) 單鏈表的整表建立與刪除

2021-07-24 15:24:19 字數 1078 閱讀 8816

單鏈表整表的建立思路:

1.說明一結點p和計數器變數i;

2.初始化一空鍊錶l;

3.讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表

4.迴圈

生成一新結點賦值給p;

賦值;將p插入到頭結點與千億新結點之間;

**:(這裡的賦值採用隨機數賦值)

[cpp]view plain

copy

void

createlisthead(linklist *l,

intn)  

}  上述**採用的是頭插法。我們也可以採用尾插法:

**如下:

[cpp]view plain

copy

void

createlisttail(linklist *l,

intn)  

r->next = null;  

}  

下面介紹單鏈表的整表刪除:

思路如下:

1.宣告結點p和q;

2.第乙個結點賦值給p

3.迴圈

下一結點賦值給q;

釋放p;

q賦值給p;

**舉例:

[cpp]view plain

copy

intclearlist(linklist *l)  

(*l)->next = null;  

return

success;  

}  

單鏈表結構與順序儲存結構的優缺點:

在儲存分配方式上:順序儲存結構用一段連續的儲存單元依次儲存資料元素;而單鏈錶用一組任意的儲存單元存放元素

在時間效能上:

查詢:1.順序儲存結構為o(1);單鏈表為o(n);

2.插入和刪除

順序儲存結構時間為o(n);單鏈表的時間僅為o(1)

在空間效能上:

順序儲存結構需要預分配儲存空間,分配的空間過大造成浪費,過小又不夠

單鏈表不需要分配,只要有就可以分配,元素個數也沒有限制

資料結構單鏈表插入 整表刪除 整表建立

0 單鏈表插入 單鏈表插入的時間複雜度 從頭查詢到插入點 o n 執行插入操作 o 1 單鏈表刪除 status listdelete linklist l,int i,elemtype e if p next j i q p next p next q next e q data free q r...

資料結構(三) 單鏈表的整表建立與刪除

單鏈表整表的建立思路 1.說明一結點p和計數器變數i 2.初始化一空鍊錶l 3.讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表 4.迴圈 生成一新結點賦值給p 賦值 將p插入到頭結點與千億新結點之間 這裡的賦值採用隨機數賦值 void createlisthead linklist l,...

單鏈表的整表建立

單鏈表整表建立的演算法思路 1 宣告一節點p和計數變數i 2 初始化一空鍊錶l 3 讓l的頭節點的指標指向null,即建立乙個帶頭節點的單鏈表 4 迴圈 實現 演算法如下 隨機產生n個元素的值,建立帶表頭節點的單鏈線性表l 頭插法 void creatlisthead linklist l,int ...