求数据结构高手。。。。看看以下代码的错误和修改,万分感谢!!!!!!!!

#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedefintelmentype;typedefstruc... #include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef int elmentype;
typedef struct node
{
elmentype data;
struct node *next;
}link;
link *l,*a,*head;
link creat(int n)
{
link *s,*p=NULL;
for(int i=1;i<=n;i++)
{
s=(link *)malloc(sizeof(link));
printf("请输入%d个元素的值",i);
scanf("%d",&s->data);
s->next=p;
p=s;
}
return *l;
}
void display(link *head)
{
link *q;
q=head->next;
while(q!=NULL)
{
printf("%d",q->data);
q=q->next;
}
printf("\n");
}
void main()
{
link creat(int n);

int m;
printf("请输入链表的长度");
scanf("%d",&m);
*a=creat(m);
display(head);
}
展开
 我来答
zotion
2014-03-09 · TA获得超过138个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:70.8万
展开全部
主要问题有两个(1)create函数里的返回值I是哪来的,应该返回p,p指向第一个节点。
(2)主函数中调用creat函数给a,怎么到调用display()中就变成了head?
对于程序共修改4处,如下:
已通过vs2008验证可以得到结果,如果有问题请再问。希望采纳。
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef int elmentype;
typedef struct node
{
elmentype data;
struct node *next;
}link;
link *l,*a,*head;
link creat(int n)
{
link *s,*p=NULL;
for(int i=1;i<=n;i++)
{
s=(link *)malloc(sizeof(link));
printf("请输入%d个元素的值",i);
scanf("%d",&s->data);
s->next=p;
p=s;
}
return *p;//此句有改动(1)
}
void display(link *head)
{
link *q;
q=head;//此句有改动(2)
while(q!=NULL)
{
printf("%d",q->data);
q=q->next;
}
printf("\n");
}
void main()
{
link creat(int n);
head=(link *)malloc(sizeof(link));//增加此句(3)
int m;
printf("请输入链表的长度");
scanf("%d",&m);
*head=creat(m);//此句有改动(4)
display(head);

int i=2;

}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式