关于C语言 尾插法建立单链表并将头指针返回给主函数的问题

#include<stdio.h>#include<malloc.h>typedefstructLNode{intdata;structLNode*next;}LinkL... #include<stdio.h>
#include<malloc.h>
typedef struct LNode
{ int data;
struct LNode *next;
}LinkList;

LinkList* Create(int n)
{LinkList *s,*r,*L;int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{s=(LinkList *)malloc(sizeof(LinkList));
s->data=i+1;
r->next=s;
r=s;
}
r->next=NULL;
return(L);
}

void main()

{int a;
LinkList *c;
printf("请输入链表长度:");
scanf("%i",&a);
c=Create(a);
}
这个函数能不能实现建立一个长度为n的链表,结点的data域值分别为1,2,3,4...n。c为指向这条链表的指针?
展开
 我来答
修魔go
推荐于2017-10-01 · TA获得超过119个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:110万
展开全部
能呀,,c是指向该链表的指针,,但是你怎么不编一个释放内存的函数,,这样做对电脑不好,,
这是显示链表函数:
void show(P *h)
{
P *p;
p=h->next;
while(p!=NULL)
{
printf("%-10d",p->data);
p=p->next;
}
puts("");
}
这是释放链表的函数:
void fre(P *h)
{
P *p1=h,*p2=h->next;
while(p2!=NULL)
{
free(p1);
p1=p2;
p2=p2->next;
}
}
追问
额 我是个新手啊 不是很理解为什么要释放啊关闭程序的时候应该会把内存释放掉吧..
追答
malloc申请的内存得释放,,其他的不用释放,数据占用的内存程序会释放,,
qscorpius_fly
2014-06-28 · TA获得超过1858个赞
知道小有建树答主
回答量:811
采纳率:80%
帮助的人:304万
展开全部
这个函数可以实现建立一个长度为n的链表
不过c=Create(a);这里c是一个表头指针,内容为空,要访问链表应该从c->next所指向的节点开始,例如在主函数中加上输出链表

void main()
{int i,a;
LinkList *c,*p;
printf("请输入链表长度:");
scanf("%i",&a);
c=Create(a);
p=c->next;
for(i=0;i<a;i++)
{
printf("%4d",p->data);
p=p->next;
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式