本文是資料結構基礎系列網路課程(2):線性表中第9課時建立單鏈表中所講的例程。
【例程】
定義單鏈表儲存結構,用頭插法和尾插法建立單鏈表,並顯示建立好以後的結果。
#include
#include
typedef
int elemtype;
typedef
struct lnode //定義單鏈表結點型別
linklist;
void createlistf(linklist *&l,elemtype a,int n);//頭插法建立單鏈表
void createlistr(linklist *&l,elemtype a,int n);//尾插法建立單鏈表
void destroylist(linklist *&l); //銷毀單鏈表
void displist(linklist *l); //輸出單鏈表
int main()
; createlistf(l1, a, 8);
printf("頭插法建表結果:");
displist(l1);
createlistr(l2, a, 6);
printf("尾插法建表結果:");
displist(l2);
destroylist(l1);
destroylist(l2);
return0;}
void createlistf(linklist *&l,elemtype a,int n)//頭插法建立單鏈表
}void createlistr(linklist *&l,elemtype a,int n)//尾插法建立單鏈表
r->next=null; //終端結點next域置為null
}void destroylist(linklist *&l) //銷毀單鏈表
free(p); //此時q為null,p指向尾結點,釋放它
}void displist(linklist *l) //輸出單鏈表
printf("\n");
}
補充:
在不少場合,建立的鍊錶要求是有序的。建立有序的鍊錶,常常需要從頭結點開始,找到插入的位置,然後將其插入即可。對每個乙個結點均是這樣。
下面給出的建立有序(公升序)鍊錶的**,作為參考:
void createlisto(linklist *&l,elemtype a,int n) //建立有序(公升序)的單鏈表
}
資料結構 單鏈表建立
順序表是一組連續的儲存單元來依次儲存線性表中的結點,而鍊錶是用一組任意的儲存單元來存放線性表中的結點,這組儲存單元可不連續分布在記憶體中的任何位置上。因此,鍊錶中結點的邏輯順序與儲存順序不一定相同。為了體現各結點儲存單元之間的邏輯關係,再儲存每個結點的同時,還必須儲存與之聯絡的相鄰結點的位址資訊,這...
資料結構 單鏈表的建立
1 尾插法 1 不帶頭結點 typedef int elementtype typedef struct node list struct node list create return ptrl 2 帶頭結點 list create return ptrl 2 頭插法 1 不帶頭結點 list c...
資料結構 單鏈表建立 插入 刪除
include include include include include using namespace std typedef struct lnode linklist void initlist linklist head 初始化鍊錶 void createlista linklist ...