c++ listnode如何实现双向链表

   2024-10-05 9890
核心提示:在C++中实现双向链表可以通过定义一个ListNode结构体来实现,该结构体包含三个成员变量:值val、指向下一个节点的指针next和指向

在C++中实现双向链表可以通过定义一个ListNode结构体来实现,该结构体包含三个成员变量:值val、指向下一个节点的指针next和指向前一个节点的指针prev。

以下是一个简单的双向链表的实现示例:

#include <iostream>struct ListNode {    int val;    ListNode* next;    ListNode* prev;    ListNode(int x) : val(x), next(nullptr), prev(nullptr) {}};class DoubleLinkedList {private:    ListNode* head;    ListNode* tail;public:    DoubleLinkedList() : head(nullptr), tail(nullptr) {}    void insertAtHead(int val) {        ListNode* newNode = new ListNode(val);        if (head == nullptr) {            head = newNode;            tail = newNode;        } else {            newNode->next = head;            head->prev = newNode;            head = newNode;        }    }    void insertAtTail(int val) {        ListNode* newNode = new ListNode(val);        if (tail == nullptr) {            head = newNode;            tail = newNode;        } else {            newNode->prev = tail;            tail->next = newNode;            tail = newNode;        }    }    void printList() {        ListNode* current = head;        while (current != nullptr) {            std::cout << current->val << " ";            current = current->next;        }        std::cout << std::endl;    }};int main() {    DoubleLinkedList dl;    dl.insertAtHead(1);    dl.insertAtTail(2);    dl.insertAtTail(3);    dl.printList();    return 0;}

在上面的示例中,定义了一个DoubleLinkedList类来实现双向链表的基本操作,包括在链表头部插入节点和在链表尾部插入节点。通过调用insertAtHead和insertAtTail方法可以向双向链表中插入节点,然后通过printList方法打印出整个链表的值。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号