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

溫馨提示×

c++ listnode如何實現高效插入

c++
小樊
83
2024-07-24 14:15:13
欄目: 編程語言

要實現高效的插入操作,可以使用雙向鏈表(doubly linked list)來實現ListNode。雙向鏈表可以在O(1)的時間復雜度內進行插入操作。

以下是一個簡單的C++示例代碼:

#include <iostream>

struct ListNode {
    int val;
    ListNode* prev;
    ListNode* next;
    
    ListNode(int x) : val(x), prev(nullptr), next(nullptr) {}
};

class LinkedList {
public:
    LinkedList() : head(nullptr), tail(nullptr) {}

    void insert(int val) {
        ListNode* newNode = new ListNode(val);
        if (head == nullptr) {
            head = newNode;
            tail = newNode;
        } else {
            tail->next = newNode;
            newNode->prev = tail;
            tail = newNode;
        }
    }

    void print() {
        ListNode* current = head;
        while (current != nullptr) {
            std::cout << current->val << " ";
            current = current->next;
        }
        std::cout << std::endl;
    }

private:
    ListNode* head;
    ListNode* tail;
};

int main() {
    LinkedList list;
    list.insert(1);
    list.insert(2);
    list.insert(3);
    
    list.print();
    
    return 0;
}

在這個示例中,當插入一個新的節點時,只需要將新節點連接到鏈表的尾部,而不需要遍歷整個鏈表。這樣就能在O(1)的時間復雜度內完成插入操作。

0
从江县| 蒲城县| 定襄县| 繁峙县| 磐安县| 兴安县| 宁强县| 镇巴县| 丰顺县| 壶关县| 靖边县| 台安县| 洪雅县| 固镇县| 托里县| 鄂托克旗| 明水县| 疏勒县| 黔江区| 保定市| 修水县| 抚宁县| 岳西县| 怀化市| 海宁市| 肃宁县| 阜城县| 辽宁省| 宝清县| 大悟县| 百色市| 栾川县| 灯塔市| 喀喇| 周至县| 会同县| 固安县| 毕节市| 清水河县| 中卫市| 平江县|