不帶頭結點的單鏈表結構體宣告
typedef struct node
node, *linklist;
(1)初始化
void initlinklist(linklist *plist) //plist為二級指標,主函式傳遞第乙個結點指標的位址
(2)求鍊錶長度
int listlength(linklist plist) //不需要修改鍊錶,則只需傳遞一級指標
return count;
}
(3)得到某個結點,函式返回該結點
linklist getnode(linklist plist, int pos)
return p;
}
(4)靜態函式:申請結點空間
(5)插入
void insert(linklist *plist, int pos, int val)
linklist p=getnode(*plist, pos); //要插入其後的結點的位置
}
(6)頭插
void inserthead(linklist *plist, int val)
(7)尾插
void inserttail(linklist *plist, int val)
(8)輸出
void show(linklist plist)
printf("null\n");
}
(9)刪除
void delete(linklist *plist, int pos)
if(pos<=0 || pos>listlength(*plist))
if(pos == 1) //頭刪特殊考慮
linklist p=getnode(*plist, pos-1); //要刪除結點的前乙個結點
linklist q=p->next; //要刪除的結點
p->next=q->next;
free(q);
}
(10)頭刪
void deletehead(linklist *plist)
linklist p=*plist;
*plist=p->next;
free(p);
}
(11)尾刪
void deletetail(linklist *plist)
delete(plist,listlength(*plist));
}
(12)判空
int listempty(linklist plist)
(13)鍊錶清空
void clearlist(linklist *plist)
while(!listempty(*plist)) //只要不為空
}
主函式
int main()
資料結構 單鏈表 帶頭結點和不帶頭結點
1 單鏈表 通過各結點的鏈結指標來表示結點間的邏輯關係,長度可擴充,遍歷或查詢 2 只能從指標的指示的首元結點開始,跟隨鏈結指標逐個結點進行訪問,進行刪除或插 4 5 6 單鏈表的結構定義 7 typedef int datatype 8 typedef struct node 9 linknode...
資料結構篇 單鏈表倒置(帶頭結點 不帶頭結點)
初始化如圖 1.我們需要把1這個結點作為最後乙個結點,所以要把1的next指向null 2.然後我們要新建結點,指向headnext的下一位,並把headnext的下一位指向headpre,3.headpre指向headnext為下一次迴圈做準備 headpre headnext 4.如果tempn...
資料結構(不帶頭結點的單鏈表)
單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料 在寫單鏈表的時候,需要對結構體有一定的了解 這裡就不做過多的結構...