รายการที่เชื่อมโยงเป็นโครงสร้างข้อมูลเชิงเส้นที่มีหลายโหนดที่เชื่อมต่อถึงกัน แต่ละโหนดประกอบด้วยสองฟิลด์ ฟิลด์ข้อมูล และที่อยู่ของโหนดถัดไป
สมมติว่าเราได้ให้รายชื่อที่เชื่อมโยงโดยลำพัง ภารกิจคือการแทรกโหนดที่จุดเริ่มต้นของรายการที่เชื่อมโยงที่กำหนด ตัวอย่างเช่น
อินพุต-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 →