C语言链表问题

/*下列程序的功能为:从键盘输入一个字符串,调用函数建立反序的链表,然后输出整个链表。补充完善程序,以实现其功能。程序以文件名sy8_6.c保存。*/#include<s... /*下列程序的功能为:
从键盘输入一个字符串,调用函数建立反序的链表,
然后输出整个链表。补充完善程序,以实现其功能。
程序以文件名sy8_6.c保存。*/
#include<stdio.h>
#include<stdlib.h>
struct node
{
char data;
struct node *link;
};
struct node *head;

void ins(struct node *q)
{
if(head==NULL)
{
q->link=NULL;
head=q;
}
else
{
q->link=head;
head=q;
}
}

int main(void)
{
char ch;
struct node *p;
head=NULL;
while((ch=getchar())!='\n')
{
p=;
p->data=ch;
ins(p);
}
p=head;
while(p!=NULL)
{
printf("%c", p->data);
p=p->link;
}
return 0;
}

while循环里p怎么填,为什么?别的地方还有问题吗?
展开
 我来答
GTA小鸡
高粉答主

2017-12-17 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
p=(struct node*)malloc(sizeof(struct node))
追问
哥,这个算动态链表了?顺便可以帮我解释一下ins函数的作用吗?
追答
链表结点都是通过malloc和free动态创建和删除的。静态的是线性表,不是链表。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式