我正在创建一个程序,它需要从CSV格式的电子表格中读取数据,并将其分配给C++.I中的双向链表。我已经创建了一个单向链表,但是我不知道如何使用这个想法来制作一个双向链表。我知道你需要一个前一个指针,但我不确定是否真正实现了代码。
我的单链表的代码:添加到列表中:
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));
}请注意: Node是一个单独的类,用于存储有关节点的数据,例如名称。
发布于 2016-03-30 23:47:20
每个列表节点必须有一个指向上一个和下一个列表节点的指针。然后,列表是列表节点的容器,以链的形式链接在一起。
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方法。存储要删除的上一个节点和下一个节点的两个指针,然后将它们相应地分配给上一个节点和下一个节点:
ListNode *after = node->next;
ListNode *before = node->prev;
after->prev = before;
before->next = after;这篇文章可能对你有帮助,完整的代码和解释
http://c.learncodethehardway.org/book/ex32.html
https://stackoverflow.com/questions/36313493
复制相似问题