資料結構 電話本 鍊錶 帶頭結點

2021-08-30 15:34:27 字數 2148 閱讀 9437

//**簿

//功能:儲存,插入,刪除,輸出**號碼資訊,

#include#include//宣告函式原型

struct link *delnode(struct link *head,int &n); //刪除節點

struct link *addnode(struct link *head,int &n); //插入節點

int displynode(struct link *head,int &n); //展示鍊錶

void deletememory(struct link *head); //釋放鍊錶

//定義鍊錶的乙個單節點

struct link

;//主函式部分

int main()

deletememory(head); //釋放鍊錶

return 0;

}建立鍊錶//

函式引數:乙個空的頭指標和表示要建立的鍊錶的個數n

返回值:頭指標;

int i; //用於迴圈;

struct link *p=null,*pr=head;//為頭結點申請記憶體空間;並使pr和head同時指向他;

pr=head=(struct link*)malloc(sizeof(struct link));

if(pr==null)

head->next=null; //head頭結點的資料域不存放資料域,指標域置為空;

scanf("%d",&n);

if(n<=0)

for(i=1;i<=n;i++)

p->next=null; //將新節點的指標域賦值為空;

pr->next=p; //將新申請的節點的位址放在pr的指標域中;

pr=p; //使指標pr指向p;

} displynode(head,n);

return head;

}///顯示鍊錶//

//函式引數:鍊錶的頭指標和鍊錶中節點的個數

//返回值:沒有

int displynode(struct link *head, int &n)

else printf("共有%d個聯絡人的資訊!\n",n);

printf("----------------------------------------\n");

printf(" 序號 姓名 **號碼\n");

while(p!=null)

printf("----------------------------------------\n\n\n");

return 1;

}///釋放head指向的鍊錶中所有節點占用的記憶體/

//函式引數是鍊錶的頭指標,沒有返回值

//鍊錶的釋放只能每個節點逐個釋放;

void deletememory(struct link *head)

}刪除節點//

//函式引數:鍊錶的頭指標和鍊錶中節點的個數

//返回值:鍊錶的頭指標;

struct link *delnode(struct link *head,int &m)

for(i=0;inext;//將n號位置的位址儲存

//將n+1號節點位址放在n-1號節點的指標域裡面

p->next=p->next->next;

free(pr); //釋放n號元素記憶體

printf(" 刪除成功 !\n");

m=m-1;//總節點個數-1

//若刪除的是一號元素,頭節點中的指標域就變成了2號元素的位址了;

if(n-1==0) head=p;

displynode(head,m);

return head;

} p=p->next;//移動到下乙個節點

} return head;

}插入節點//

struct link *addnode(struct link *head,int &m)

for(i=0;i<=m;i++) //0~m(1~m+1)共迴圈m+1次

pr=pr->next; //若沒有找到n-1號節點就讓指標p指向下乙個節點

} return head;

}

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

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。簡單講就是邏輯相鄰,物理不相鄰 帶頭結點 list.h prag...

資料結構 單鏈表 帶頭結點和不帶頭結點

1 單鏈表 通過各結點的鏈結指標來表示結點間的邏輯關係,長度可擴充,遍歷或查詢 2 只能從指標的指示的首元結點開始,跟隨鏈結指標逐個結點進行訪問,進行刪除或插 4 5 6 單鏈表的結構定義 7 typedef int datatype 8 typedef struct node 9 linknode...

資料結構 鍊錶 帶頭結點的單向迴圈鍊錶

帶頭結點的單向迴圈鍊錶 include include include headlist.h 功能 建立乙個空鍊錶 引數 無 返回值 失敗返回null 成功返回頭結點的位址 list createlklist list first null list last null list n 0 現在還是空...