续写#include<stdio.h> #include<stdlib.h> typedef struct Linklist{ char name[10]; char num[10]; struct Linklist *next; }Linklist,*LNode; //创建链表 //输出链表 //修改链表中的某一项 //在链表尾部插入一项 //在链表中删除一项 void main(){ Linklist *L; int i=255; L=(LNode)malloc(sizeof(Linklist)); L->next=NULL; create(L); while(i!=0){ puts("\n功能:\n1.输出\t2.修改\t3.删除\t4.插入\t0.退出"); scanf("%d",&i); switch(i){ case 1: output(L); break; case 2: update(L); break; case 3: del(L); break; case 4: insert(L); break; } } }
时间: 2024-04-26 13:25:31 浏览: 50
C语言课程设计—学生成绩管理系统(源代码)吉林大学1.doc
续写:
//创建链表
void create(Linklist *L){
LNode p,q;
q=L;
int n;
printf("请输入链表长度:");
scanf("%d",&n);
for(int i=1;i<=n;i++){
p=(LNode)malloc(sizeof(Linklist));
printf("请输入第%d个节点的姓名和编号:",i);
scanf("%s%s",p->name,p->num);
p->next=NULL;
q->next=p;
q=p;
}
}
//输出链表
void output(Linklist *L){
LNode p;
p=L->next;
puts("姓名\t\t编号");
while(p){
printf("%s\t\t%s\n",p->name,p->num);
p=p->next;
}
}
//修改链表中的某一项
void update(Linklist *L){
char key[10];
LNode p;
p=L->next;
printf("请输入要修改的节点的编号:");
scanf("%s",key);
while(p){
if(strcmp(p->num,key)==0){
printf("请输入修改后的姓名和编号:");
scanf("%s%s",p->name,p->num);
puts("修改成功!");
return;
}
p=p->next;
}
puts("未找到该节点!");
}
//在链表尾部插入一项
void insert(Linklist *L){
LNode p,q;
p=L->next;
while(p->next){
p=p->next;
}
q=(LNode)malloc(sizeof(Linklist));
printf("请输入新节点的姓名和编号:");
scanf("%s%s",q->name,q->num);
q->next=NULL;
p->next=q;
puts("插入成功!");
}
//在链表中删除一项
void del(Linklist *L){
char key[10];
LNode p,q;
p=L->next;
q=L;
printf("请输入要删除的节点的编号:");
scanf("%s",key);
while(p){
if(strcmp(p->num,key)==0){
q->next=p->next;
free(p);
puts("删除成功!");
return;
}
q=p;
p=p->next;
}
puts("未找到该节点!");
}
int main(){
Linklist *L;
int i=255;
L=(LNode)malloc(sizeof(Linklist));
L->next=NULL;
create(L);
while(i!=0){
puts("\n功能:\n1.输出\t2.修改\t3.删除\t4.插入\t0.退出");
scanf("%d",&i);
switch(i){
case 1:
output(L);
break;
case 2:
update(L);
break;
case 3:
del(L);
break;
case 4:
insert(L);
break;
}
}
return 0;
}
阅读全文