gpt4 book ai didi

c - C中循环链表的显示函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:43 25 4
gpt4 key购买 nike

我的循环链表有问题。我相信问题出在我的显示功能上。请让我知道出了什么问题。我遇到的问题是显示前 n-1 个元素,然后出现段错误(最后一个元素没有显示,出现段错误)。谢谢 :-)

             #include<stdio.h>
#include<stdlib.h>
struct Node
{
int data;
struct Node* link;
};
struct Node* last = NULL;
void Insert_begin(int a)
{
struct Node* temp;
temp = malloc(sizeof(struct Node));
temp->data = a;
if (last == NULL)
last = temp;
else
{
temp->link = last->link;
last->link = temp;
}
}
void Display()
{
struct Node* temp;
if (last == NULL)
{
printf("list is empty");
}
temp = last->link;
while(temp!=last)
{
printf("%d\n",temp->data);
temp = temp->link;
}
printf("%d\n",temp->data);
}
int main()
{
Insert_begin(0);
Insert_begin(1);
Insert_begin(2);
Insert_begin(3);
Insert_begin(4);
Display();
return 0;
}

最佳答案

当您将第一个元素插入到列表中时,您必须将它的链接指向它自己:

if (last == NULL) {
last = temp;
last->link = last;
} else ...

在您的代码中,最后一个元素的链接未初始化。

关于c - C中循环链表的显示函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118287/

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