順序表是一組連續的儲存單元來依次儲存線性表中的結點,而鍊錶是用一組任意的儲存單元來存放線性表中的結點,這組儲存單元可不連續分布在記憶體中的任何位置上。因此,鍊錶中結點的邏輯順序與儲存順序不一定相同。為了體現各結點儲存單元之間的邏輯關係,再儲存每個結點的同時,還必須儲存與之聯絡的相鄰結點的位址資訊,這個資訊稱為指標或鏈。在c語言中,可以用指標實現。根據不同的鏈結方式,鍊錶可以分為單鏈表,迴圈鍊錶和雙向鍊錶。這裡先介紹單鏈表的建立。
單鏈表在單鏈表中,每個結點只有乙個指標域指向下乙個結點的位址,因此每個結點包括資料域和指標域。
用c語言描述單鏈表的結點結構如下:
typedef int datatype;
typedef struct node //結點型別定義
linklist;
建立單鏈表
為了建立乙個能具體操作的單鏈表,假設結點的資料型別為字元型,下面介紹兩種建立字元鍊錶的方法。
1)頭插法建表
頭插法是按結點的逆序方法逐漸將結點插入到鍊錶的頭部,如圖
頭插法程式設計如下:
linklist *creatlist1()
return head;//返回頭指標
}
頭插法建立鍊錶的演算法簡單,但是生成鍊錶的結點順序與輸入順序想反,但人們習慣使用下面的尾插法。
2)尾插法建表
尾插法按結點的順序逐漸將結點插入到鍊錶尾部。
尾插法程式設計如下:
linklist *creatlist2()
if(e!=null) e->next=null;
return head;//返回頭指標
}
下節會繼續介紹鍊錶的查詢,插入,刪除。 資料結構 單鏈表的建立
1 尾插法 1 不帶頭結點 typedef int elementtype typedef struct node list struct node list create return ptrl 2 帶頭結點 list create return ptrl 2 頭插法 1 不帶頭結點 list c...
資料結構例程 單鏈表的建立
本文是資料結構基礎系列網路課程 2 線性表中第9課時建立單鏈表中所講的例程。例程 定義單鏈表儲存結構,用頭插法和尾插法建立單鏈表,並顯示建立好以後的結果。include include typedef int elemtype typedef struct lnode 定義單鏈表結點型別 linkl...
資料結構 單鏈表建立 插入 刪除
include include include include include using namespace std typedef struct lnode linklist void initlist linklist head 初始化鍊錶 void createlista linklist ...