#include<stdio.h>
typedef struct Node
{
int data;
struct Node *next;
struct Node *prev;
} node;
void insert(node *pointer, int data)
{
while(pointer->next!=NULL)
{
pointer = pointer -> next;
}
pointer->next = (node *)malloc(sizeof(node));
(pointer->next)->prev = pointer;
pointer = pointer->next;
pointer->data = data;
pointer->next = NULL;
}
int main()
{
node *start;
start = (node *)malloc(sizeof(node));
int data;
scanf("%d",&data);
insert(start,data);
}
好吧,我正在尝试了解 C 中列表的基础知识。我在这里有一个问题 - insert() 底部的第 3 行 - 这是为了什么?似乎第一个列表的元素保持为空并且数据正在保存到第二个列表中。但只有这个有效。
在 main() 中创建了第一个空元素,对吗?
while() 不执行,因为元素为空。
然后正在创建第二个元素。(指针->空)
指向第一个元素的指针设置为指向第二个元素(从底部算起的第 3 行)
数据被保存到第二个元素。
我在哪里犯错?