gpt4 book ai didi

c - 在 C 中打印链表

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:59 24 4
gpt4 key购买 nike

我正在尝试使用 C 打印链表。但是当我执行 ./a.out 时它打印的是空的。谁能帮我解决我做错的地方。谢谢。

#include<stdio.h>
#include<stdlib.h>

struct node
{
int data;
struct node *next;
};

int main()
{
node *start,*temp;
start = (node *)malloc(sizeof(node));
temp = start;
temp -> next = NULL;
while(1)
{
int query;
printf("1.Insert\n");
printf("2.Print\n");
printf("Enter your choice:\n");
scanf("%d",&query);
if(query==1)
{
int data;
printf("Enter the element to be inserted.\n");
scanf("%d",&data);
while(start->next!=NULL)
{
start = start -> next;
}
start->next = (node *)malloc(sizeof(node));
start = start->next;
start->data = data;
start->next = NULL;
}
else if(query ==2)
{
printf("The list is as below:\n");
while(start->next!=NULL)
{
printf("%d \t",start->next->data);
start=start->next;

}
}
else
break;
}

return 0;
}

最佳答案

无论何时插入一个元素,您都会将 start 指针移动到 NULL 之前的指针。因此,无论何时你想打印列表,start->next 都是 NULL,什么也打印不出来。

您应该使用 temp 代替元素插入和列表输出。请记住在遍历列表之前将 temp 指向 start

关于c - 在 C 中打印链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11991975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com