1、順序儲存結構的建立,其實就是乙個陣列的初始化,即宣告乙個固定型別和大小的陣列並賦值的過程。
而單鏈表和順序儲存結構就不一樣,它不像順序儲存結構那麼幾種,它可以很散,是一種動態結構。對於每個鍊錶來說,
它所占用空間的大小和位置是不需要預先分配劃定的,可以根據系統的情況和實際需求即時生成。
所以建立單鏈表的過程就是乙個動態生成鍊錶的過程。即從「空表」的初始狀態起,依次建立各元素結點,並逐個插入鍊錶。
---- 單鏈表整表建立的演算法思路:
-- 1)宣告一結點p和計數器變數 i ;
-- 2)初始化一空鍊錶l;
-- 3)讓l的頭結點的指標指向null,即建立乙個帶頭結點的單鏈表;
-- 4)迴圈:生成一新結點賦值給p 隨機生成一數字賦值給p的資料域p->data 將p插入到頭結點與前一新結點之間。
實現**演算法如下:
#include #include using namespace std;
typedef int elemtype;
typedef struct node
node,*linklist;
//typedef struct node *linklist;
//typedef node *linklist;
/* 隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(頭插法)*/
void createlist(linklist *l,int n)
}
這段演算法**裡,我們其實用的是插隊的辦法,就是始終讓新結點在第一的位置。可以把這種演算法簡稱為頭插法。
也可以每次把新結點都插在終端結點的後面,按照排隊時的正常思維,所謂的先來後到,這種演算法稱之為尾插法。
實現**演算法如下:
#include #include using namespace std;
typedef int elemtype;
typedef struct node
node,*linklist;
//typedef struct node *linklist;
//typedef node *linklist;
/* 隨機產生n個元素的值,建立帶表頭結點的單鏈線性表l(尾插法)*/
void createlist(linklist *l,int n)
r->link = null;
}
l是指整個單鏈表,而 r 是指向尾結點的指標,r是會隨著迴圈不斷的變化,l則是隨著迴圈增長為乙個多結點的鍊錶。
單鏈表的整表建立
單鏈表整表建立的演算法思路 1 宣告一節點p和計數變數i 2 初始化一空鍊錶l 3 讓l的頭節點的指標指向null,即建立乙個帶頭節點的單鏈表 4 迴圈 實現 演算法如下 隨機產生n個元素的值,建立帶表頭節點的單鏈線性表l 頭插法 void creatlisthead linklist l,int ...
單鏈表整表建立和整表刪除
對於每個鍊錶來說,它所占用空間的大小和位置是不需要預先分配劃定的,可以根據系統的情況和實際的需求即使生成。所以建立單鏈表的過程就是乙個動態生成鍊錶的過程。即從 空表 的初始狀態開始,依次建立各元素結點,並逐個插入鍊錶。單鏈表整表建立的演算法思路 1 宣告一指標p和計數器變數i 2 初始化一空鍊錶l ...
單鏈表的整表建立和刪除 四
單鏈表的整表建立和刪除 一 單鏈表的整表建立 建立單鏈表的過程是乙個動態生成鍊錶的過程,從 空表 的初始狀態起,依次建立各元素結點並逐個插入鍊錶。單鏈表整表建立的演算法思路如下 1 宣告一結點p 2 初始化一空鍊錶l 3 建立乙個帶頭結點的單鏈表,即讓l的頭結點的指標指向null。4 迴圈實現後繼結...