问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言链表问题,求解答!

发布网友 发布时间:2022-05-12 02:56

我来回答

2个回答

热心网友 时间:2023-08-03 04:35

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct node {
unsigned id;
char name[30];
double scores[3];
struct node *next;
}*LIST,*pNode;

pNode ReadInfor() {
pNode newnode = (pNode)malloc(sizeof(struct node));
printf("学号:");
scanf("%u",&newnode->id);
fflush(stdin);
printf("姓名:");
scanf("%s",newnode->name);
printf("三门课程成绩(空格隔开):");
scanf("%lf%lf%lf",&newnode->scores[0],&newnode->scores[1],&newnode->scores[2]);
return newnode;
}

LIST Create(int n) {
int i;
LIST head;
pNode p;
head = p = (pNode)malloc(sizeof(struct node));
for(i = 0; i < n; ++i) {
p->next = ReadInfor();
p = p->next;
}
p->next = NULL;
return head;
}

pNode Seek(LIST head,char name[]) {
pNode p = head;
while(p->next) {
if(strcmp(p->next->name,name) == 0) {
return p;
}
p = p->next;
}
return NULL;
}

int InsertFront(LIST head,char name[]) { // 插在姓名为name的结点前面
pNode newnode,p = Seek(head,name);
if(p) {
newnode = ReadInfor();
newnode->next = p->next;
p->next = newnode;
return 1;
}
else printf("没有找到姓名是:%s的学生!\n",name);
return 0;
}

int InsertRear(LIST head,char name[]) { // 插在姓名为name的结点后面
pNode newnode,p = Seek(head,name);
if(p) {
newnode = ReadInfor();
newnode->next = p->next->next;
p->next->next = newnode;
return 1;
}
else printf("没有找到姓名是:%s的学生!\n",name);
return 0;
}

int Erase(LIST head,char name[]) {
pNode q,p = Seek(head,name);
if(p) {
q = p->next;
p->next = q->next;
free(q);
printf("删除成功。\n");
return 1;
}
else printf("没有找到姓名是:%s的学生!\n",name);
return 0;
}

void Show(LIST head) {
pNode p = head->next;
int i;
while(p) {
printf("%u ",p->id);
printf("%s ",p->name);
for(i = 0; i < 3; ++i)
printf("%g ",p->scores[i]);
printf("\n");
p = p->next;
}
}

int main() {
LIST head = Create(3);
Show(head);
InsertFront(head,"刘灿");
InsertRear(head,"宋立柱");
Erase(head,"赵培龙");
Show(head);
return 0;
}

热心网友 时间:2023-08-03 04:36

给你一个大致的答案,如果看不懂,或者还要修改的地方在跟我说下,我这个只是简单的做个链表的操作。
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
int num;
float score;
struct student* next;

}stu;
stu* creat(stu* head)
{
stu* p1,* p2;
p1=p2=(stu*)malloc(sizeof(stu));
scanf("%d,%f",&p1->num,&p1->score);
while(p1->num!=0)
{
if(head==NULL)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(stu*)malloc(sizeof(stu));
scanf("%d,%f",&p1->num,&p1->score);
}
p2->next=NULL;
return head;
}
stu* find(stu* head,int m)
{
int n;
stu* p1;
p1=head;
if(head==NULL)
{
printf("该链表为空\n");
exit(-1);
}
if(m==0)
printf("请输入要插入在什么结点之后\n");
else
printf("请输入要删除的结点\n");
scanf("%d",&n);
while(p1->num!=n)
p1=p1->next;
return p1;

}
stu* insert(stu* head)
{
stu* p1,* p2;
p1=(stu*)malloc(sizeof(stu));
printf("请输入要插入的数据\n");
scanf("%d,%f",&p1->num,&p1->score);
p2=find(head,0);
p1->next=p2->next;
p2->next=p1;
return head;
}
stu* delete(stu* head)
{
stu* p1,* p2;
p2=head;
p1=find(head,1);
if(p1==head)
head=head->next;
else
{
while(p2->next!=p1)
p2=p2->next;
p2->next=p1->next;
}
return head;
}
stu* nixu(stu* head)
{
stu* p1,* p2,* p3;
p3=(stu*)malloc(sizeof(stu));
p3=NULL;
p2=p1=head;
if(head==NULL)
{
printf("该链表为空\n");
exit(-1);
}
else
{
while(p1!=NULL)
{
p2=p1->next;
p1->next=p3;
p3=p1;
p1=p2;

}
}
return p3;
}
print(stu* head)
{
printf("打印链表:\n");
while(head!=NULL)
{
printf("%d,%f\n",head->num,head->score);
head=head->next;
}

}
int main()
{
stu* head;
head=NULL;
head=creat(head);
head=insert(head);
head=delete(head);
// head=nixu(head);
print(head);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的网站,现在人们的压力越来越大,心里的事情,说出来要好点,大家... 三星手机在接收微信.信息.电话时手电闪亮怎样关闭手电 在我国现存珍稀动物中数量最少的是( )A.大熊猫B.扬子鳄C.白鳍豚D... 什么是混凝土框剪结构 索尼ps4看门狗怎么转化中文 sony智能手表sw4(sony智能手表2.7) 索尼黑卡4设置中文 魅蓝note怎么可以讲设置调到通知栏,除魅流量外本机自带的流量监控可不... 双肩电脑包有哪些品牌值得推荐? 什么电脑背包好什么牌子的电脑包性价比最高 处长史节小说txt全集免费下载 青岛科迪物流有限公司怎么样? 求 赵培龙 的签名, 易写,好看。 有的请发ghost-fire@163.com 有好看、好写的就采纳。 河南婷舞教育咨询有限公司怎么样? 北京泉众胜龙钢模板有限公司怎么样? 电脑停电之后开机蓝屏 上海富祥展览有限公司怎么样? 有谁可以帮我起一个英文名子吗?我叫赵培龙,能和我的名字发音相近的更好。 赵培龙散文选小说txt全集免费下载 和平精英的女皮肤怎么获得 “赞美夜景”的句子有哪些? 红番区里的南希是谁扮演的??? 地狱男爵中的演员是谁 艾草煮鸡蛋要吃多久才能去寒气 想查一部电影,女主角叫艾碧,内容是与石油交易有关黑幕的外文片,急求 少年特工科迪中的那个女的是谁 艾草和洋葱可以去寒吗 艾草真得能治理疾病吗?艾草都能怎么调理我们的身体。 求ICS频道一电影名或资料 The Deal 北京夜景刷爆朋友圈,你的手机里都有哪些地方的夜景? 家校新干线的单词游戏无名后是什么? 泰康人寿同时交重疾险和医疗保险重疾险出险了医疗保险还可以交吗? 对方知道你能对你定位吗? 问:&#xFFFC; 50 就是不再使用中,可以定位查询到地址吗? 只有。警察可以通过微信定位吗? 微信绿码定位,是通过手机卡还是定位? 能够定位吗 如何来通过定位追踪找人 手机丢失了,能用以前找到手机的位置吗? ,能定位吗? 警察用能锁定人的位置吗 怎么定位ip地址 只有可以定位在哪个城市吗 手机丢了,别人还在用如何定位找回? 微信绿码定位,是通过手机卡还是定位? 114的定位系统如何用的? 我自己的脂肪填充卧蚕效果怎么样? 研讨村人民公司组建方案 习水县国有资产投融资经营有限责任公司组建方案的经营范围 什么是有限责任公司