1,頭部插入法
/*********************************************************************
*?函數名:linklist?*CreateLinklistHead()
*?函數功能:用頭插入法創建鏈表。
*?參數:無
*?回歸?回來了?Value:創建鏈表後鏈表的頭節點。
*?註:無
*********************************************************************/
extern?鏈接列表?*CreateLinklistHead()
{
int?x,?我,?nodeNum
鏈接列表?*頭,?*溫度;?//?頭節點和臨時節點
頭?=?(linklist?*)malloc(sizeof(linklist));?//?生成標題節點
head->;下壹個?=?NULL//?將值賦給標題節點的指針字段
Printf("請輸入鏈表中的節點數:");
scanf("%d ",& ampnodeNum);
for(I = 1;?我& lt= nodeNum?i++)
{
Printf("請先輸入?%d?節點的數據:“,?I);
scanf("%d ",& ampx);
臨時工?=?(linklist?*)malloc(sizeof(linklist));?//?生成新節點
temp->;數據?=?x;//?為新節點的數據字段賦值。
//?在頭節點後插入新節點。
temp->;下壹個?=?head->;接下來;?
head->;下壹個?=?溫度;
}
回歸?頭;?//?返回新鏈表的頭節點。
}2、尾部插入法
/*********************************************************************
*?函數名:linklist?*CreateLinklistRear()
*?功能:用尾部插入法創建鏈表。
*?參數:無
*?回歸?回來了?Value:創建鏈表後鏈表的頭節點。
*?註:無
*********************************************************************/
extern?鏈接列表?*CreateLinklistRear()
{
int?x,?我,?nodeNum
鏈接列表?*頭,?*後方,?*溫度;?//?定義頭節點、尾節點和臨時節點。
頭?=?(linklist?*)malloc(sizeof(linklist));?//?生成不存儲數據的頭節點。
head->;下壹個?=?NULL?//?將頭節點的指針字段賦值為NULL。
後方?=?頭;?//?將頁眉節點分配給頁腳節點
Printf("請輸入鏈表中的節點數:");
scanf("%d ",& ampnodeNum);
for(I = 1;?我& lt= nodeNum?i++)
{
Printf("請先輸入?%d?節點的數據:“,?I);
scanf("%d ",& ampx);
臨時工?=?(linklist?*)malloc(sizeof(linklist));?//?生成新節點
temp->;數據?=?x;//?新節點的數據字段
temp->;下壹個?=?NULL?//?新節點的指針字段(因為是尾部插入法,所有插入的節點都在尾部,即指針字段為空)
後方-& gt;下壹個?=?溫度;?//?使前壹個節點指向新節點(頭->;next=temp)
後方?=?溫度;?//?將新節點賦給尾部節點(尾部插入法,插入的節點在尾部)(rear = head-& gt;下壹個)
}
//rear-& gt;下壹個?=?NULL?//?將尾節點的指針字段指定為空(以便檢查鏈表是否為空)
回歸?頭;?//?返回頭節點
}