L
Link List

 

อัลกอลิทึมในการแทรกโหนดใหม่เข้าไปไว้ในลิงค์ลิสต์ดังในตารางที่ 1

ตารางที่ 1 อัลกอริทึมการแทรกโหนดใหม่ลงในลิงค์ลิงค์ลิสต์
1.สร้างโหนดใหม่โดยมีตัวแปรพอยน์เตอร์ New ชี้อยู่
2.นำค่าเก็บไว้ในส่วนเก็บข้อมูลของโหนดใหม่โดยใช้ Info (New) = VALUE
3.กำหนดให้ตัวชี้ของโหนดใหม่ชี้ไปยังโหนดถัดไป (Successor) ที่จะถูกแทรกโดยใช้ Next (New) = Next (P)
4.กำหนดให้ตัวชี้ของโหนดก่อนหน้า (Predecessor) ที่จะถูกแทรกชี้ไปยังโหนดใหม่โดยใช้ Next (P)=New

        ตัวอย่าง การแทรกโหนดใหม่ไว้ในลิงค์ลิสต์ โดยเริ่มต้นสร้างเป็นโหนด I ในหน่วยความจำกำหนดส่วนเก็บข้อมูลมีค่า L ส่วนการเชื่อมต่อมีค่าเป็น NULL ซึ่งมีตัวแปรพอยน์เตอร์ New ชี้อยู่ ดังในรูปที่ 2 และมีลิงค์ลิสต์ที่ต้องการแทรกโหนดใหม่เข้ามาระหว่างโหนด 2 เป็นโหนดก่อนหน้า (Predecessor) และโหนด 3 เป็นโหนดถัดไป (Successor) ดังนั้นจึงกำหนดให้ตัวแปรพอยน์เตอร์ P ชี้ไปยังโหนด 2 และขั้นตอนในการแทรกประกอบด้วย

 

 

 

 

 


รูปที่ 2  ตัวอย่างลิงค์ที่ต้องการแทรกโหนด 1 เข้ามาระหว่างโหนด 2 และ 3

 

(a)      Next(New) =Next (P) กำหนดให้ตัวชี้ของโหนด I เปลี่ยนไปชี้ยังโหนด 3 ซึ่งเป็นส่วนหลังของการแทรกโหนดใหม่ ในรูปที่ 3
 

รูป  3  กำหนดให้ตัวชี้ของโหนด 1 ชี้ไปยังโหนด 3

(b)      Next(P) =New กำหนดให้ตัวชี้ของโหนด 2 ที่มีตัวแปรพอยน์เตอร์ P ชี้อยู่เปลี่ยนไปชี้ยังโหนด I ที่มีตัวแปรพอยน์เตอร์ New ชี้อยู่ ในรูปที่ 4

 

 

 

 

 

 

        เมื่อการแทรกโหนดเสร็จสิ้น โหนด I จะมาต่อจากโหนดก่อนหน้าและแทนที่ลำดับของโหนดถัดไป การทำงานดังกล่าวจะมีเพียง 2 โหนดที่เกี่ยวข้องคือโหนดใหม่ I และโหนดที่ตัวแปรพอยน์เตอร์ P ชี้อยู่ ส่วนโหนดอื่นๆ ไม่ถูกเรียกใช้งานหรือเปลี่ยนแปลง

 การแทรกโหนดไว้ในลิงค์ลิสต์