Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เขียนโปรแกรม C++ เพื่อแทรกโหนดที่จุดเริ่มต้นของ Singly Linked List ที่กำหนด

Linked List เป็นโครงสร้างข้อมูลเชิงเส้นที่มีโหนดหลายตัวที่เชื่อมต่อกัน แต่ละโหนดประกอบด้วยสองฟิลด์ คือ Data Field และที่อยู่ของโหนดถัดไป

สมมติว่าเรามี singly linked list งานคือแทรกโหนดที่จุดเริ่มต้นของ linked list ที่กำหนด ตัวอย่างเช่น

ตัวอย่างอินพุต 1

1 → 2 → 3 → 4

แทรก '5' ที่หัวหรือจุดเริ่มต้นของ linked list ที่กำหนด

เอาต์พุต

5 → 1 → 2 → 3 → 4

คำอธิบาย

หลังจากแทรกโหนดที่จุดเริ่มต้นของ linked list จะพิมพ์ linked list เป็น 5 → 1 → 2 → 3 → 4

วิธีการแก้ปัญหา

เริ่มต้นเรามี linked list ที่ประกอบด้วยโหนด แต่ละโหนดมีข้อมูลและที่อยู่ไปยังโหนดถัดไป

เนื่องจากเราสร้างโหนดไว้แล้ว เราจะสร้างฟังก์ชันที่จะรับที่อยู่ของโหนด head เป็นพารามิเตอร์และข้อมูลที่เราต้องแทรกที่จุดเริ่มต้นของ linked list และแทรกข้อมูลที่จุดเริ่มต้น ตอนนี้ชี้ head ไปที่โหนดที่แทรกใหม่

  • ฟังก์ชัน insertAtHead(node*& head, int data) รับที่อยู่ของโหนด head และข้อมูลที่เราต้องแทรก
  • สร้างโหนดใหม่และแทรกข้อมูลลงไป
  • ย้าย head ไปที่โหนดที่สร้างใหม่
  • พิมพ์ linked list

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

class Node {
public:
    int data;
    Node* next;
    Node(int d) {
        data = d;
        next = NULL;
    }
};

void insertAtHead(Node* &head, int data) {
    Node* n = new Node(data);
    n->next = head;
    head = n;
}

void print(Node* head) {
    while (head != NULL) {
        cout << head->data << "->";
        head = head->next;
    }
}

int main() {
    Node* head = NULL;
    insertAtHead(head, 5);
    insertAtHead(head, 2);
    insertAtHead(head, 8);
    insertAtHead(head, 3);
    print(head);
    return 0;
}

ผลลัพธ์

การรันโค้ดด้านบนจะสร้างเอาต์พุตเป็น

3 → 8 → 2 → 5 →

การแทรกโหนด 3, 8, 2 และ 5 ที่จุดเริ่มต้นของ linked list จะสร้างเอาต์พุตเป็น 3 → 8 → 2 → 5 →