รายการที่เชื่อมโยงเป็นโครงสร้างข้อมูลเชิงเส้นที่มีหลายโหนดที่เชื่อมต่อถึงกัน แต่ละโหนดประกอบด้วยสองฟิลด์ ฟิลด์ข้อมูล และที่อยู่ของโหนดถัดไป
สมมติว่าเราได้ให้รายชื่อที่เชื่อมโยงโดยลำพัง ภารกิจคือการแทรกโหนดที่จุดเริ่มต้นของรายการที่เชื่อมโยงที่กำหนด ตัวอย่างเช่น
อินพุต-1 − 1 → 2 → 3 → 4
แทรก '5' ที่ส่วนหัวหรือจุดเริ่มต้นของรายการที่เชื่อมโยงที่กำหนด
ผลผลิต − 5 → 1 → 2 → 3 → 4
คำอธิบาย − หลังจากแทรกโหนดที่จุดเริ่มต้นของรายการที่เชื่อมโยง มันจะพิมพ์รายการที่เชื่อมโยงเป็น 5 → 1 → 2 → 3 → 4
แนวทางการแก้ปัญหานี้
ในขั้นต้น เราได้ให้รายชื่อที่เชื่อมโยงที่ประกอบด้วยโหนด แต่ละโหนดมีข้อมูลและที่อยู่ไปยังโหนดถัดไป
เนื่องจากเราได้สร้างโหนดแล้ว ดังนั้น เราจะสร้างฟังก์ชันที่จะใช้ที่อยู่ของโหนดหลักเป็นพารามิเตอร์และข้อมูลที่เราจะต้องแทรกที่จุดเริ่มต้นของรายการที่เชื่อมโยงและแทรกข้อมูลที่จุดเริ่มต้น ตอนนี้หันหัวไปที่โหนดที่แทรกใหม่
-
ฟังก์ชัน insertAthead(node*&head, int data) รับที่อยู่ของโหนดส่วนหัวและข้อมูลที่เราต้องแทรก
-
สร้างโหนดใหม่และแทรกข้อมูลเข้าไป
-
ย้ายส่วนหัวไปยังโหนดที่สร้างขึ้นใหม่
-
พิมพ์รายการที่เชื่อมโยง
ตัวอย่าง
#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);
} ผลลัพธ์
การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น
3→ 8→ 2→ 5 →
การแทรกโหนด 3, 8, 2 และ 5 ที่จุดเริ่มต้นของรายการที่เชื่อมโยง จะสร้างผลลัพธ์เป็น − 3→ 8→ 2→ 5 →