單鏈表詳解(建立,插入,刪除,列印)

2021-06-11 09:06:24 字數 1112 閱讀 4692

首先宣告乙個結構體,裡面包含結點內容和結點指標兩塊;

struct node

typedef struct node listnode//重新命名結構體

//建立鍊錶

listnode * creatlist(listnode * head,int  n);//宣告,head代表頭結點指標,n代表建立的結點個數

listnode * creatlist(listnode * head, int  n)

p->next=null;//將最後結點的指標清空;

return head;//返回煉表頭結點; }

//插入節點

void insertnode(int i,listnode *head,int n);//i代表要插入的位置,head代表頭結點,n代表鍊錶長度

void insertnode(int i,listnode *head,int n)

else

//為要插入的結點q開闢空間

q=(listnode *)malloc(sizeof(listnode));

scanf("%s",&p->name);

scanf("%d",&p->age);

//將結點q插進去

q->next=p->next;

p->next=q; }

}//刪除結點

void deletenode(int i,listnode *head,int n);//i代表要刪除的位置,head代表頭結點,n代表鍊錶長度

void deletenode(int i,listnode *head,int n)

else

//刪除結點

p->next=q;

p->next=q->next;

//釋放被刪除結點的記憶體

free(q); }

//列印鍊錶

void print(listnode * head);

void print(listnode * head)

單鏈表的最大缺點就是:每次進行操作都要從頭結點開始,只能向後查詢,為了解決單鏈表的缺陷,資料結構中加入了雙鏈表的概念,本部落格將在最近對雙鏈表進行剖析;

以上**及觀點如果存在錯誤,還望指正。

單鏈表 建立插入刪除

建立乙個工程,在其中新增 list.h 標頭檔案,list.cpp原始檔和main.cpp原始檔。標頭檔案list.h中進行資料型別抽象 adt 宣告了乙個結構體和對應的操作,如下 ifndef list h define list h typedef struct list list 函式宣告 l...

單鏈表的建立 插入 刪除

單鏈表的初始化 建立 插入 查詢 刪除 include include typedef int elemtype 定義結點型別 typedef struct node node,linkedlist 單鏈表的初始化 linkedlist linkedlistinit l next null 將nex...

單鏈表的建立 插入 刪除

建立乙個節點 typedef struct node link 建立鍊錶 首先head 這個變數指向第乙個節點,然後讓temp1 指向每次建立的knot1節點。簡單來說就是 knot1 開闢節點,temp1儲存每次開闢的節點。num 節點個數 link createlist link head,in...