單鏈表整表的建立思路:
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 ...