對於每個鍊錶來說,它所占用空間的大小和位置是不需要預先分配劃定的,可以根據系統的情況和實際的需求即使生成。
所以建立單鏈表的過程就是乙個動態生成鍊錶的過程。即從「空表」的初始狀態開始,依次建立各元素結點,並逐個插入鍊錶。
單鏈表整表建立的演算法思路:
1、宣告一指標p和計數器變數i;
2、初始化一空鍊錶l;
3、讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表;
4、迴圈:
--生成一新結點賦值給p;
--隨機生成一數字賦值給p的資料域p->data;
--將p插入到頭結點與前一新結點之間
/*隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(頭插法)*/
void createlisthead(linklist *l,int n)
}
/*隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(尾插法)*/
void createlisthead(linklist *l,int n)
r-next=null;/*表示鍊錶結束*/
}
單鏈表整表刪除的演算法思路:
1、宣告一指標p和q;
2、將第乙個結點賦值給p;
3、迴圈:
--將下一節點賦值給q;
--釋放p;
--將q賦值給p。
/*操作結果:將l重置為空表*/
status clearlist(linklist *l)
(*l)->next=null;/*頭結點指標域為空*/
return ok;
}
單鏈表的整表建立和刪除 四
單鏈表的整表建立和刪除 一 單鏈表的整表建立 建立單鏈表的過程是乙個動態生成鍊錶的過程,從 空表 的初始狀態起,依次建立各元素結點並逐個插入鍊錶。單鏈表整表建立的演算法思路如下 1 宣告一結點p 2 初始化一空鍊錶l 3 建立乙個帶頭結點的單鏈表,即讓l的頭結點的指標指向null。4 迴圈實現後繼結...
資料結構單鏈表插入 整表刪除 整表建立
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 迴圈 實現 演算法如下 隨機產生n個元素的值,建立帶表頭節點的單鏈線性表l 頭插法 void creatlisthead linklist l,int ...