亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++ listnode如何實現雙向鏈表

c++
小樊
82
2024-07-24 14:26:16
欄目: 編程語言

在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方法打印出整個鏈表的值。

0
大邑县| 萍乡市| 格尔木市| 攀枝花市| 杭锦后旗| 石楼县| 肥西县| 梅河口市| 保亭| 黔江区| 乳山市| 塘沽区| 来凤县| 宁晋县| 黄大仙区| 邓州市| 阳原县| 册亨县| 兴城市| 新野县| 读书| 秦皇岛市| 长沙市| 武隆县| 马尔康县| 兴仁县| 白玉县| 益阳市| 巫溪县| 合江县| 眉山市| 仪陇县| 黄山市| 河曲县| 元阳县| 莆田市| 通化市| 澄城县| 浠水县| 阿克陶县| 项城市|