这是数据结构中的尾插法进行单链表的创建。根据这段代码,最后一个结点指针(p-next)指向哪儿? 5

#include<malloc.h>#include<stdio.h>typedefstructnode{intdata;structnode*next;}NODE;NO... #include<malloc.h>
#include<stdio.h>
typedef struct node
{
int data;
struct node *next;

}NODE;
NODE *creat()
{
NODE *head,*q,*p;
int a,n;
printf("单链表长度n=");
scanf("%d",&n);
head=(NODE*)malloc(sizeof(NODE));
head->next=NULL;
q=head->next;
for(int i=0;i<n;i++) {
scanf("%d",&a);
p=(NODE*)malloc(sizeof(NODE));
p->data=a;
head->next=p;
p->next=q;
q=p;

}
return(head);

}
main()
{
NODE *a;
a=creat();
printf("输出单链表的元素:\n");
a=a->next;
while(a!=NULL)
{
printf("%d\n",a->data);
a=a->next;
}
}
展开
 我来答
闲来垂钓有余
2013-03-16
知道答主
回答量:23
采纳率:0%
帮助的人:15.3万
展开全部
你先看这个列子:
LinkList CreatListR(void)
{//返回单链表的头指针
char ch;
LinkList head;//头指针
ListNode *s,*r; //工作指针
head=NULL; //链表开始为空
r=NULL;//尾指针初值为空
ch=getchar(); //读入第1个字符
while(ch!='\n'){
s=(ListNode *)malloc(sizeof(ListNode));//生成新结点
s->data=ch; //将读入的数据放入新结点的数据域中
if (head!=NULL)
head=s;//新结点插入空表
else
r->next=s;//将新结点插到*r之后
r=s;//尾指针指向新表尾
ch=getchar(); //读入下一字符
}//endwhile
if
(r!=NULL)
r->next=NULL;//对于非空表,将尾结点指针域置空head=s;
return head;
}
你那个应该是a->next=p->next;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式