gpt4 book ai didi

c++ - 将前一个节点的地址存储到当前节点的 “prev”部分中

转载 作者:行者123 更新时间:2023-12-01 15:06:36 30 4
gpt4 key购买 nike

首先,我使用名为listrec的结构定义了节点。因此,每个节点包含3个部分:prev(用于存储前一个节点的地址),value(用于存储值)和next(用于存储下一个节点的地址)。

#include <iostream>

using namespace std;

struct listrec
{
struct listrec *prev;
float value;
struct listrec *next;
};

listrec *head, *tail;

然后,我使用循环来初始化链表(基于用户请求的节点数)。
for (float i = 0; i < number; i++)
{
if (i == 0)
{
head = new listrec;
head->prev = NULL;
head->value = i;
head->next = NULL;
tail = head;
}
else
{
tail->next = new listrec;
tail = tail->next;
tail->value = i++;
tail->next = NULL;

}
}

但是我不知道如何将前一个节点的地址存储到当前节点的上一个地址中。

下面是链接节点的外观。

由于每次创建新节点时尾部的位置都会移动,并且头总是指向第一个节点……我如何才能将前一个节点的地址存储到当前节点的“上一个”部分中?

enter image description here

最佳答案

创建一个新节点,设置成员,将地址存储在next中并更新tail

for (float i = 0; i < number; i++) {
if (i == 0) {
head = new listrec;
head->prev = nullptr;
head->value = i;
head->next = nullptr;
tail = head;
} else {
auto *newNode = new listrec;
newNode->value = i++;
newNode->next = nullptr;
newNode->prev = tail;
tail->next = newNode;
tail = tail->next;
}
}

关于c++ - 将前一个节点的地址存储到当前节点的 “prev”部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60917667/

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