//**簿
//功能:儲存,插入,刪除,輸出**號碼資訊,
#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 現在還是空...