gpt4 book ai didi

c - 双向链表工作不正常

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

我有一个双向链表。当我告诉它向前打印列表中的项目时,它工作正常。当我告诉它向后打印列表中的项目时,它返回 300 作为最后一个值,而它应该返回 100。我在节点定义(它们按顺序定义)或 dubblePrev (这是一个相当简单的递归函数),虽然我对指针(以及,通过扩展,链接列表)不熟悉,所以我可能错过了一些看起来相当明显的东西。这是怎么回事?

这是我的代码:

// Doubly linked list

#include <stdio.h>

struct entry
{
int value;
struct entry *next;
struct entry *prev;
};

void dubbleNext (struct entry *e) {
if (e != '\0') {
printf ("%d\n", e->value);
dubbleNext(e->next);
}
}

void dubblePrev (struct entry *e) {
if (e != '\0') {
printf ("%d\n", e->value);
dubbleNext(e->prev);
}
}

int main (void)
{


struct entry n1, n2, n3;
int i;

n1.value = 100;
n2.value = 200;
n3.value = 300;

n1.next = &n2;
n2.next = &n3;
n3.next = NULL;

n1.prev = NULL;
n2.prev = &n1;
n3.prev = &n2;

dubbleNext (&n1);
dubblePrev (&n3);

return 0;
}

最佳答案

您的“doublePrev”函数中有错字。试试这个。

void dubblePrev (struct entry *e) {
if (e != '\0') {
printf ("%d\n", e->value);
dubblePrev(e->prev);
}

关于c - 双向链表工作不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926293/

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