資料結構 C語言實現 不帶頭結點單鏈表總結

2021-10-09 02:38:19 字數 1695 閱讀 7886

不帶頭結點的單鏈表結構體宣告

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...

資料結構(不帶頭結點的單鏈表)

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料 在寫單鏈表的時候,需要對結構體有一定的了解 這裡就不做過多的結構...