【发布时间】:2021-10-13 20:57:14
【问题描述】:
我想创建整数链表并显示。假设有 3 个节点,其值为 11,22,33 。但是当我显示它时,它只打印第一个值,即 11 。出了什么问题?
注意: 要创建和显示链表,head 和 p 节点变量是否足够或者必须取 3 个节点指针变量。即 head , p 和 q 也是?
#include <stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}node;
int main()
{
int i, j, num, value;
node *p = NULL;
node *head = NULL;
printf("how many nodes\r\n");
scanf("%d",&num);
for(i = 0 ;i < num ; i++)
{
printf("enter node %d = ",i+1);
scanf("%d",&value);
p = (node *)malloc(sizeof(node));
p->data = value;
p->next = NULL;
if(head == NULL)
{
head = p;
}
}
printf("linked list formed is \r\n");
for(p = head ; p != NULL ; p = p->next)
{
printf("p->data = %d\r\n ",p->data);
}
return 0;
}
【问题讨论】:
-
在扫描后的第一个for循环中,您没有将节点与之前的节点连接
-
@susanth29 我不明白如何连接它们。要创建和显示链表,head 和 p 节点变量是否足够,或者必须取 3 个节点指针变量。即 head , p 和 q 也是?
-
单独保存最后添加的元素,然后相应地添加新元素。
-
为什么你认为它不应该只打印 11?
标签: c linked-list