c++ " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

C++鎬庝箞鐢ㄧ被瀹炵幇閾捐〃

扬州沐宇科技
2024-01-11 10:20:12
c++

瑕佷娇鐢ㄧ被瀹炵幇閾捐〃锛岄鍏堥渶瑕佸畾涔変竴涓妭鐐圭被鏉ヨ〃绀洪摼琛ㄧ殑鑺傜偣锛岀劧鍚庡啀瀹氫箟涓€涓摼琛ㄧ被鏉ユ搷浣滆繖浜涜妭鐐广€?/p>

浠ヤ笅鏄竴涓娇鐢ㄧ被瀹炵幇閾捐〃鐨勭ず渚嬶細

#include <iostream>

// 閾捐〃鑺傜偣绫?/span>
class Node {
public:
    int data;
    Node* next;
    
    Node(int value) {
        data = value;
        next = nullptr;
    }
};

// 閾捐〃绫?/span>
class LinkedList {
private:
    Node* head;  // 閾捐〃澶存寚閽?/span>
public:
    LinkedList() {
        head = nullptr;
    }
    
    // 鍦ㄩ摼琛ㄥ熬閮ㄦ彃鍏ヤ竴涓妭鐐?/span>
    void append(int value) {
        Node* newNode = new Node(value);
        
        if (head == nullptr) {
            head = newNode;
        } else {
            Node* current = head;
            while (current->next != nullptr) {
                current = current->next;
            }
            current->next = newNode;
        }
    }
    
    // 鍦ㄩ摼琛ㄦ寚瀹氫綅缃彃鍏ヤ竴涓妭鐐?/span>
    void insert(int value, int index) {
        if (index < 0) {
            std::cout << "Invalid index!" << std::endl;
            return;
        }
        
        Node* newNode = new Node(value);
        
        if (index == 0) {
            newNode->next = head;
            head = newNode;
        } else {
            Node* current = head;
            for (int i = 0; i < index - 1; i++) {
                if (current == nullptr) {
                    std::cout << "Invalid index!" << std::endl;
                    return;
                }
                current = current->next;
            }
            newNode->next = current->next;
            current->next = newNode;
        }
    }
    
    // 鍒犻櫎閾捐〃鎸囧畾浣嶇疆鐨勮妭鐐?/span>
    void remove(int index) {
        if (index < 0) {
            std::cout << "Invalid index!" << std::endl;
            return;
        }
        
        if (index == 0) {
            Node* temp = head;
            head = head->next;
            delete temp;
        } else {
            Node* current = head;
            for (int i = 0; i < index - 1; i++) {
                if (current == nullptr || current->next == nullptr) {
                    std::cout << "Invalid index!" << std::endl;
                    return;
                }
                current = current->next;
            }
            Node* temp = current->next;
            current->next = temp->next;
            delete temp;
        }
    }
    
    // 鎵撳嵃閾捐〃涓殑鎵€鏈夎妭鐐瑰€?/span>
    void print() {
        Node* current = head;
        while (current != nullptr) {
            std::cout << current->data << " ";
            current = current->next;
        }
        std::cout << std::endl;
    }
};

int main() {
    LinkedList myList;
    
    myList.append(1);
    myList.append(2);
    myList.append(3);
    
    myList.insert(4, 1);
    
    myList.print();  // 杈撳嚭锛? 4 2 3
    
    myList.remove(2);
    
    myList.print();  // 杈撳嚭锛? 4 3
    
    return 0;
}

鍦ㄤ笂杩扮ず渚嬩腑锛屾垜浠鍏堝畾涔変簡涓€涓妭鐐圭被Node锛屽寘鍚竴涓暣鍨嬫暟鎹垚鍛?code>data鍜屼竴涓寚鍚戜笅涓€涓妭鐐圭殑鎸囬拡next銆?/p>

鐒跺悗锛屾垜浠畾涔変簡涓€涓摼琛ㄧ被LinkedList锛屽寘鍚竴涓寚鍚戦摼琛ㄥご閮ㄧ殑鎸囬拡head銆傞摼琛ㄧ被涓疄鐜颁簡鍑犵鍩烘湰鐨勯摼琛ㄦ搷浣滐紝濡傚湪閾捐〃灏鹃儴鎻掑叆鑺傜偣銆佸湪鎸囧畾浣嶇疆鎻掑叆鑺傜偣銆佸垹闄ゆ寚瀹氫綅缃殑鑺傜偣浠ュ強鎵撳嵃閾捐〃涓殑鎵€鏈夎妭鐐广€?/p>

鍦?code>main鍑芥暟涓紝鎴戜滑鍒涘缓浜嗕竴涓摼琛ㄥ璞?code>myList锛屽苟杩涜浜嗕竴浜涙彃鍏ャ€佸垹闄ゅ拰鎵撳嵃鎿嶄綔锛屾渶鍚庨攢姣侀摼琛ㄥ璞°€?/p>

杩愯涓婅堪绀轰緥浠g爜锛屽皢杈撳嚭濡備笅缁撴灉锛?/p>

1 4 2 3
1 4 3

杩欒〃鏄庝娇鐢ㄧ被瀹炵幇鐨勯摼琛ㄨ兘澶熸甯稿伐浣溿€?/p>

扫码添加客服微信