C語言單鏈表 增 刪 改 查

2021-09-19 16:37:44 字數 1700 閱讀 1556

鍊錶是一種常見的基礎資料結構,結構體指標在這裡得到了充分的利用。鍊錶可以動態的進行儲存分配,也就是說,鍊錶是乙個功能極為強大的陣列,他可以在節點中定義多種資料型別,還可以根據需要隨意增添,刪除,插入節點。鍊錶都有乙個頭指標,一般以head來表示,存放的是乙個位址。鍊錶中的節點分為兩類,頭結點和一般節點,頭結點是沒有資料域的。鍊錶中每個節點都分為兩部分,乙個資料域,乙個是指標域。鍊錶就如同車鏈子一樣,head指向第乙個元素:第乙個元素又指向第二個元素;……,直到最後乙個元素,該元素不再指向其它元素,它稱為「表尾」,它的位址部分放乙個「null」(表示「空位址」),鍊錶到此結束。

作為有強大功能的鍊錶,對他的操作當然有許多,比如:鍊錶的修改,刪除,插入,查詢等等。

1.鍊錶的建立

typedef struct node

linklist;

2.鍊錶的初始化

void initlist(linklist *&l)

3.鍊錶的插入

這裡介紹的是頭插法

void listinsert(linklist *&l, linklist *p)

將節點p插入到鍊錶l中,只需要讓p指向頭結點指向的位置,在另頭結點指向p,就可以吧p插入到鍊錶中。

4.鍊錶中某個節點的刪除

void delete(linklist *&l, int e)

q = p;

p = p->next;

} free(p);//刪除後一定要記得釋放空間,不然造成記憶體崩潰

}

用圖來表示,即就是跳過該節點,直接指向下乙個節點,再釋放掉該節點。

5.遍歷鍊錶

linklist *q = l->next;

while (q != null)

這樣就可對鍊錶進行遍歷,輸出所有節點的資料域的值。

完整**:

#include#includetypedef struct lnode

linklist;

void initlist(linklist *&l)

void listinsert(linklist *&l, linklist *p)

void delete(linklist *&l, int e)

while (p != null)

q = p;

p = p->next; }}

void add(linklist *&l)//增加

void dele(linklist *&l)//刪除

void change(linklist *&l)//修改

q = q->next; }}

void prin(linklist *&l)//列印鍊錶

printf("\n");

}int main()

} system("pause");

return 0;

}

單鏈表增刪改查

include include include include using namespace std struct node node int x,node next null 帶參初始化 建立煉表頭結點,新增引用因為要改變指標的位址指向 void createlink node head 新增鍊...

單鏈表增刪改查

單鏈表單鍊錶 linked list 由各個記憶體結構通過乙個 next 指標鏈結在一起組成,每乙個內 存結構都存在後繼記憶體結構 鏈尾除外 記憶體結構由資料域和 next 指標域組成。單鏈表實現圖示 解析 data 資料 next 指標,組成乙個單鏈表的記憶體結構 第乙個記憶體結構稱為 鏈頭,最後...

單鏈表 增刪改查

目錄基本面試題 class heronode class singlelinkedlistpublic void add heronode heronode public void addbyorder heronode heronode if temp.next.no heronode.no el...