Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การลบตรรกะขององค์ประกอบส่วนหัวและส่วนท้ายในรายการที่เชื่อมโยงโดยใช้ภาษา C


รายการที่เชื่อมโยงใช้การจัดสรรหน่วยความจำแบบไดนามิก กล่าวคือ ขยายและย่อขนาดตามลำดับ เป็นชุดของโหนด

โหนดมีสองส่วนคือข้อมูลและลิงค์ อธิบายไว้ด้านล่าง

การลบตรรกะขององค์ประกอบส่วนหัวและส่วนท้ายในรายการที่เชื่อมโยงโดยใช้ภาษา C

การดำเนินการกับรายการที่เชื่อมโยง

การดำเนินการในรายการเชื่อมโยงมีสามประเภทดังต่อไปนี้ −

  • การแทรก
  • การลบ
  • การข้ามผ่าน

การลบ

  • ระบุโหนด
  • ปรับลิงก์ในลักษณะที่การจัดสรรคืนของโหนดไม่ได้ทำให้รายการเป็นส่วนประกอบที่ไม่ได้เชื่อมต่อ
  • ส่งคืน/แสดงองค์ประกอบที่จะลบ
  • จัดสรรหน่วยความจำ

ลบองค์ประกอบส่วนหัว

ทำตามขั้นตอนด้านล่างเพื่อลบองค์ประกอบส่วนหัวในภาษาการเขียนโปรแกรม 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 - จัดสรรหน่วยความจำใหม่