首页 > 电脑

链表c语言

更新时间2020-12-15 04:22:41

追问:#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node *create(int n)
{
int i;
struct node *head, *p1 ,*p2;
int a;
head=NULL;
printf("输出整数 ");
for(i=n;i>0;i++)
{
p1=(struct node*)malloc(sizeof(struct node));
scanf("%d",&a);
p1->data=a;
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
}
p2->next=NULL;
return head;
}
int main()
{
int n;
struct node *q;
printf("输出你想创建的节点 ");
scanf("%d",n);
q=create(n);
printf("输出的结果是 ");
while(q)
{
printf("%d",q->data);
q=q->next;
}
printf(" ");
}题目是输入3个节点 并输出结点数
//师傅你帮我看看这个书上链表写的是不是错的啊 我 运行没有结果 所有指针都指向p空间我咋看咋不对劲呢  既然创建3个指针 就要管理3个结构体节点的空间 这里为啥把所有指针都指向p?
链表不是一环扣一环吗  ? head->next=p1;
                                         p1->next=p2;
                                         p2->next=NULL; 链表不应该是这样形式吗?为什么所有指针都要指向p呢  如果这样况三个指针如果输出的不都是p空间的数据吗?

scanf("%d",n);

scanf("%d",&n);

for(i=n;i>0;i++)

for(i=n;i>0;i--)

程序就可以正常运行了,测试结果

链表c语言

相关标签:c语言

上一篇:苹果6p插上数据线没反应怎么办

下一篇:为什么我在regedit里找不到HKEY_CURRENTVER?