L
Link List

 

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

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

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

 

 

 

 



                           

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

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

 

 

 

 

 

 

รูปที่ 18  กำหนดให้ตัวชี้ Right ชี้ไปยังโหนด 3 ตัวชี้ Left ชี้ไปยังโหนด 2

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

 

 

 

 


 

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

การแทรกโหนดไว้ในลิงค์ลิสต์สองทาง
รูปที่ 17  ตัวอย่างลิงค์ลิสต์สองทางที่ต้องการแทรกโหนด I เข้ามาระหว่างโหนด 2 และ 3
รูปที่ 19  กำหนดให้ตัวชี้ Right ของโหนด 2 และตัวชี้ Left ของโหนด 3 ชี้ไปยังโหนด 1