姓名和学号 c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include
#include
#include
#include
typedef?struct?Node
{
int?data;
struct?Node?*next;
}AN;
int?data;
AN?*CreList(AN?*head);
AN?*InsList(AN?*head,int?data);
AN?*DelList(AN?*head,int?data);
void?find(int?value,AN?*head);
void?Des(AN?*head);
void?display(AN?*head);
void?main()
{
char?j='y';int?x;AN?*head=NULL;
printf("請(qǐng)創(chuàng)建一個(gè)鏈表,以0結(jié)束\n");head=CreList(head);
while(j=='y')
{
j=0;
printf("選擇操作:\n1.重新創(chuàng)建鏈表\n2.插入數(shù)據(jù)\n3.刪除數(shù)據(jù)\n4.查找某個(gè)數(shù)\n5.輸出鏈表\n6.刪除鏈表\n");
scanf("%d",&x);
switch(x)
{
case?1:
printf("請(qǐng)輸入鏈表,以0結(jié)束\n");head=CreList(head);break;
case?2:
printf("請(qǐng)插入一個(gè)數(shù)字\n");scanf("%d",&data);head=InsList(head,data);break;
case?3:
printf("刪除哪個(gè)數(shù)?\n");scanf("%d",&data);head=DelList(head,data);break;
case?4:
printf("查找那個(gè)數(shù)?\n");scanf("%d",&data);find(data,head);break;
case?5:
display(head);break;
case?6:
Des(head);break;
default?:0;
}
printf("continue?(y?or?n)\n");
while(j!='y'&&j!='n')
{
j=getch();
}
system("cls");
}
}
AN?*CreList(AN?*head)
{
AN?*p;
AN?*p1=NULL;
p=(AN?*)malloc(sizeof(AN));
int?x;
scanf("%d",&x);
p->data=x;
p->next=NULL;
head=p;p1=p;
while(x!=0)
{
p=(AN*)malloc(sizeof(AN));
scanf("%d",&x);
if(x==0){free(p);p=NULL;break;}
p->data=x;
p->next=NULL;
p1->next=p;
p1=p;
}
return?head;
}
void?display(AN?*head)
{
AN?*p=head;
while(p!=NULL)
{
printf("%d\n",p->data);
p=p->next;
}
}
AN?*InsList(AN?*head,int?data)
{
AN?*w,*p=head,*p1=head;
if((w=(AN?*)malloc(sizeof(AN)))==NULL)
printf("內(nèi)存空間申請(qǐng)失敗\n");
else
{
w->data=data;
w->next=NULL;
if(w->data<=p->data)
{w->next=head;return?w;}
else
{
while(w->data>p->data&&p->next!=NULL)
{
p1=p;
p=p->next;
}
if(w->data>p->data)
{
p1=p;
p=p->next;
}
p1->next=w;
w->next=p;
}
}
return?head;
}
AN?*DelList(AN?*head,int?data)
{
AN?*p=head,*p1=head;
while(p->data!=data)
{
p1=p;
p=p->next;
if(p==NULL)break;
}
if(p==NULL)?printf("表中無(wú)此數(shù)\n?");
else
if(head->data==p->data)
{
head=head->next;
free(p);
}
else
p1->next=p->next;
p=NULL;
free(p);
return?head;
}
void?find(int?value,AN?*head)
{
AN?*p=head;
int?count=0;
while(p->data!=value&&p->next!=NULL)
{
p=p->next;count++;
}
if(p->next==NULL&&p->data!=value)
printf("鏈表里無(wú)此數(shù)\n");
else
printf("是第%d個(gè)數(shù)\n",count+1);
}
void?Des(AN?*head)
{
AN?*p;
while(head->next!=NULL)
{
p=head;
head=head->next;
free(p);
}
free(head);
printf("鏈表成功刪除");
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的姓名和学号 c语言,急啊!!!求救了 C语言编一个链表,输出姓名和学号就好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 游戏审批备案号怎么弄(备案号怎么弄)
- 下一篇: android 字符串 转公式,java