一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

鏈表

 iDefine 2011-12-21
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/*定義結(jié)構(gòu)體*/
struct student
{
int num;
float score;
struct student *next;
};

/*創(chuàng)建一個(gè)只有頭結(jié)點(diǎn)的空鏈表*/
struct student *create_head()
{
struct student *head;
head=(struct student*)malloc(sizeof (struct student) );
if(head==NULL)             //小心別漏這個(gè)
{
printf("申請(qǐng)頭結(jié)點(diǎn)失敗!\n");
return NULL;
}
head->num = 0;
head->score = 0.0;
head->next=NULL;
return head;
}
// 將s指向的結(jié)點(diǎn)插入鏈表,使鏈表保持升序,并返回頭結(jié)點(diǎn)
struct student *insert(struct student *head,struct student *s)
{
struct student *p=head;
while(p->next!=NULL && s->score > p->next->score)//特別注意&&左右不能寫(xiě)反,若s最大,最后p->next=NULL,p->next->score運(yùn)行出錯(cuò)
p=p->next;
if(p->next==NULL) //s->score最大的情況     //其實(shí)兩種情況可以并在一塊寫(xiě)
{
p->next=s;    //連接結(jié)點(diǎn)
s->next=NULL;   //p->next就等于NULL
}
else 
{
s->next=p->next;
p->next=s;    //連接結(jié)點(diǎn)
}
return head ;
}
/*查找符合條件的結(jié)點(diǎn),并返回指向該結(jié)點(diǎn)的指針*/
struct student *search(struct student *head)
{
struct student *p=head->next;
int num;
printf("請(qǐng)輸入要查找學(xué)生的學(xué)號(hào):\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num)   //特別注意兩條件不能寫(xiě)反,若寫(xiě)反最后p指向NULL時(shí)p->num找不到 運(yùn)行出錯(cuò)
p=p->next;
if(p==NULL)             //特別注意兩個(gè)if不能調(diào)換,若調(diào)換最后p指向NULL時(shí)p->num運(yùn)行出錯(cuò)
{
printf("找不到符合條件的結(jié)點(diǎn)!!!\n");
return NULL; //查找不到返回空指針
}
if(p->num==num)
{
printf("找到符合條件的結(jié)點(diǎn)\n該結(jié)點(diǎn)為%d\t%.1f\n",p->num,p->score);
return p; //返回查找到的指針
}
}

/*輸出鏈表各結(jié)點(diǎn)的值,也稱(chēng)對(duì)鏈表的遍歷*/
void print(struct student *head)
{
struct student *p;
printf("  鏈表如下:  \n");
p=head->next;
while(p!=NULL)
{
printf("%d\t%.1f\n",p->num,p->score);
p=p->next;
}
}

/*釋放鏈表*/
void free_list(struct student *head)
{
struct student *p=head ;
printf("釋放鏈表:\n");
while(p!=NULL)
{
head=head->next;
free(p);
p=head;
}
printf("釋放鏈表成功!\n");
}
/*刪除鏈表中值為num的結(jié)點(diǎn),并返回鏈表的首指針*/
struct student *delete_note(struct student *head,int num_x)
{
struct student *p1=head->next , *p2=head ;
while(p1!=NULL&&p1->num!=num_x)  //特別注意&&左右條件不能調(diào)換,若調(diào)換如果p1指向NULL時(shí)p1->num運(yùn)行出錯(cuò)
{
p2=p1;
p1=p1->next;
}
if(p1==NULL)    //特別注意兩個(gè)if不能調(diào)換,若調(diào)換如果p1指向NULL時(shí),p1->num運(yùn)行出錯(cuò)
{
printf("找不到符合刪除要求的結(jié)點(diǎn)!!!\n");
return NULL;
}
if(p1->num==num_x)
{
p2->next=p1->next;
free(p1);
printf("結(jié)點(diǎn)刪除成功!\n");
}
return head;
}

/*完整的有頭結(jié)點(diǎn)鏈表操作程序*/
void main()
{
struct student *p , *head ;
char c;
int num ;
float score ;
printf("有頭結(jié)點(diǎn)鏈表操作程序:\n");
head=create_head();
while(1)
{
printf("I:插入結(jié)點(diǎn)(自動(dòng)升序)  P:輸出鏈表  S:查找結(jié)點(diǎn)  D:刪除結(jié)點(diǎn)  E:釋放鏈表并退出程序!  \n");
c=getch();
switch(c)
{
case'I':
case'i':
printf("請(qǐng)分別輸入要插入學(xué)生的學(xué)號(hào)和分?jǐn)?shù):\n");
scanf("%d%f",&num,&score);
p=(struct student*)malloc( sizeof(struct student) );
if(p==NULL)
{
printf("申請(qǐng)?jiān)摻Y(jié)點(diǎn)失敗!!!\n");
exit (0) ;
}
p->num=num;  p->score=score;   //給p賦值
insert(head,p);
printf("插入成功!\n");
break;
case'p':
print(head);
break;
case's':
search(head);
break;
case'd':
printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào):\n");
scanf("%d",&num);
delete_note(head,num);
break;
case'e':
free_list(head);
exit (0);
}
}


}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    国产精品伦一区二区三区四季| 成年人黄片大全在线观看| 久久精品色妇熟妇丰满人妻91| 欧美日韩精品视频在线| 国产欧美日韩在线一区二区| 色婷婷视频在线精品免费观看| 亚洲精品偷拍视频免费观看| 在线观看免费午夜福利| 老司机精品福利视频在线播放 | 国产老熟女超碰一区二区三区| 人妻偷人精品一区二区三区不卡| 四季av一区二区播放| 激情内射日本一区二区三区| 大香蕉网国产在线观看av| 国产不卡最新在线视频| 久久精品国产亚洲熟女| 国产av一区二区三区四区五区| 国产在线观看不卡一区二区| 欧美精品亚洲精品日韩精品| 国产一级内射麻豆91| 日本熟妇五十一区二区三区| 黑人巨大精品欧美一区二区区 | 欧美91精品国产自产| 激情爱爱一区二区三区| 超碰在线免费公开中国黄片| 中国少妇精品偷拍视频| 日本熟妇五十一区二区三区| 国产精品一区二区视频成人| 欧美黑人在线一区二区| 国产99久久精品果冻传媒| 午夜视频在线观看日韩| 欧美偷拍一区二区三区四区| 黄片免费在线观看日韩| 国内精品美女福利av在线| 亚洲夫妻性生活免费视频| 色丁香之五月婷婷开心| 福利视频一区二区在线| 欧洲一区二区三区自拍天堂| 久久精品国产第一区二区三区| 办公室丝袜高跟秘书国产| 日韩中文高清在线专区|