gpt4 book ai didi

c++ - 在 C++ 中创建双向链表

转载 作者:行者123 更新时间:2023-11-28 02:09:19 25 4
gpt4 key购买 nike

我正在创建一个程序,需要从 CSV 格式的电子表格中读取数据并将其分配给 C++ 中的双向链表。我创建了一个单链表,但我不知道如何使用这个想法是为了制作一个双向链表。我知道您需要一个先前的指针,但我不确定是否实际实现了代码。

我的单向链表的代码:添加到列表:

if (!m_head)
{
m_head = new Node(name, reference,latitude,longitude);
}
else
{
Node *current = m_head;
while (current->getNext() != 0)
{
current = current->getNext();
}
current->setNext(new Node(name, reference,latitude,longitude));
}

请注意:节点是一个单独的类,用于存储有关节点的数据,例如姓名。

最佳答案

每个列表节点必须有一个指向前一个和下一个列表节点的指针。然后 List 是 List Nodes 的容器,作为链连接在一起。

struct ListNode;

typedef struct ListNode {
struct ListNode *next;
struct ListNode *prev;
void *value;
} ListNode;

typedef struct List {
int count;
ListNode *first;
ListNode *last;
} List;

然后您需要相应地实现 push 和 pop 方法。棘手的部分是 remove 方法。存储要删除的上一个和下一个Node的两个指针,然后分别赋值给上一个和下一个节点:

ListNode *after = node->next;
ListNode *before = node->prev;
after->prev = before;
before->next = after;

这篇文章可能对你有帮助,完整的代码和解释

http://c.learncodethehardway.org/book/ex32.html

关于c++ - 在 C++ 中创建双向链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36313493/

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