gpt4 book ai didi

c - 在c中单独列出插入函数

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

我正在尝试为简单的链表编写一些函数。这个应该在列表之间的某处添加一个节点。用户在列表的头部放入应该在此时保存的数据“c”,以及一个作为保存索引的整数“x”。但它基本上什么都不做,我不确定为什么。也许有人能看出错误。

第一个 if 语句只是检查索引是否是列表的一部分。

DoubleNode *insert(DoubleNode *head, double c, int x)
{
int i;
DoubleNode *cursor, *tmp, *newl;
cursor = head->next;
newl = head;
if (x > Index(newl) || x < 1)
{
printf("FAIL\n");
return NULL;
}
else {
while (cursor != NULL)
{
newl->next = cursor;
cursor = cursor->next;
if (i == x)
{
tmp = malloc(sizeof(DoubleNode));
if (tmp == NULL)
{
printf("Fail");
return NULL;
}
tmp->data = c;
tmp->next = cursor;
cursor = tmp;
}
i++;
}
}
return newl;
}

最佳答案

声明

tmp->data=c;
tmp->next=cursor;
cursor=tmp;

实际上并没有将节点 tmp 添加到列表中。你需要做例如

tmp->data = c;
tmp->next = cursor->next
cursor->next = tmp;
break; // No need to loop more, we've inserted the node

关于c - 在c中单独列出插入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580100/

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