รายการที่เชื่อมโยงใช้การจัดสรรหน่วยความจำแบบไดนามิก กล่าวคือ ขยายและย่อขนาดตามลำดับ เป็นชุดของโหนด
โหนดมีสองส่วนคือข้อมูลและลิงค์ อธิบายไว้ด้านล่าง
การดำเนินการกับรายการที่เชื่อมโยง
การดำเนินการในรายการเชื่อมโยงมีสามประเภทดังต่อไปนี้ −
- การแทรก
- การลบ
- การข้ามผ่าน
การลบ
- ระบุโหนด
- ปรับลิงก์ในลักษณะที่การจัดสรรคืนของโหนดไม่ได้ทำให้รายการเป็นส่วนประกอบที่ไม่ได้เชื่อมต่อ
- ส่งคืน/แสดงองค์ประกอบที่จะลบ
- จัดสรรหน่วยความจำ
ลบองค์ประกอบส่วนหัว
ทำตามขั้นตอนด้านล่างเพื่อลบองค์ประกอบส่วนหัวในภาษาการเขียนโปรแกรม C
<ก่อน>1. เป็นโมฆะ del_head()2. {3. int x; โหนด * อุณหภูมิ;4. ถ้า(หัว==NULL)5. {6. printf("รายการว่างเปล่า");7. กลับ;8. }9. x=หัว->องค์ประกอบ;10. อุณหภูมิ=หัว;11. ถ้า(หัว==หาง)12. หัว=หาง=NULL:13. อย่างอื่น14. หัว=หัว->ถัดไป;15. printf("องค์ประกอบที่ถูกลบ %d",x);16. ฟรี(ชั่วคราว);17. }ที่นี่
ขั้นตอนที่ 4 - ตรวจสอบรายการว่างหรือไม่
ขั้นตอนที่ 9 - อ่านองค์ประกอบที่จะลบ
ขั้นตอนที่ 10 - หัวหน้าอ้างอิงโดยตัวชี้ชั่วคราว
ขั้นตอนที่ 11 - ตรวจสอบการลบครั้งล่าสุด
ขั้นตอนที่ 14 - ย้ายตัวชี้ส่วนหัวไปยังองค์ประกอบถัดไปในรายการ
ขั้นตอนที่ 15 – แสดงองค์ประกอบที่จะลบ
ขั้นตอนที่ 16 - จัดสรรหน่วยความจำใหม่
ลบองค์ประกอบส่วนท้าย
ทำตามขั้นตอนด้านล่างเพื่อลบองค์ประกอบส่วนท้ายในภาษาการเขียนโปรแกรม C
<ก่อน>1. เป็นโมฆะ del_tail()2. {3. int x;4. โหนด *อุณหภูมิ;5. ถ้า(หัว==NULL)6. {7. printf("รายการว่างเปล่า");8. กลับ;9. }10. อุณหภูมิ=หัว;11. while(temp->next !=Tail)12. temp=temp->next;13. x=หาง->ele;14. หาง=อุณหภูมิ;15. Temp=temp->ถัดไป 16. หาง->ถัดไป=NULL;17. printf("องค์ประกอบที่ถูกลบ %d",x);18. ฟรี(ชั่วคราว);19. }ที่นี่
ขั้นตอนที่ 4 - ตรวจสอบรายการว่าง
ขั้นตอนที่ 10, 11, 12 - ย้ายตัวชี้อุณหภูมิไปที่สุดท้ายแต่โหนดเดียวของรายการ
ขั้นตอนที่ 13 - อ่านองค์ประกอบหางเพื่อลบ
ขั้นตอนที่ 14 - ย้ายตัวชี้หางไปยังโหนดสุดท้ายแต่เพียงโหนดเดียว
ขั้นตอนที่ 15 - ย้ายตัวชี้อุณหภูมิไปยังโหนดสุดท้ายของรายการ
ขั้นตอนที่ 16 - ลบการอ้างอิงจากโหนดหางไปยังโหนดชั่วคราว
ขั้นตอนที่ 17 - แสดงองค์ประกอบที่จะลบ
ขั้นตอนที่ 18 - จัดสรรหน่วยความจำใหม่