[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null] ลิ้งค์ลิสต์สองทาง [][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
stuct node{ int data; struct node*Prtvious; //ชี้ไปยังโหนดก่อนหน้า Struct node*Next; // ชี้ไปยังโหนดถัดไป }
การแทรกโหนดใหม่ระหว่าง โหนด 2 กับ 3 First->[][1][]<->[][5][]<->[][3][]<->[][8][null] p pชี้โหนด 2 p->Next ชี้โหนด 3 (p->Next)->previous ชี้โหนด 2
1. ค้นหาตำแหน่งที่ต้องการจะแทรกโหนดใหม่ p=First; //ให้ทำในขณะที่ p->Data ไม่เท่ากับ5 while(p->data!5){ //ถ้าเป็นจริง ให้ p ชี้ไปยังโหนดถัดไป p=p->Next; //เมื่อออกจาก while()pชี้โหนด 2 }
2. สร้างโหนดใหม่ให้ new ชี้โหนดใหม่ Nodes new= createNewNode(); ผลลัพธ์ กำหนดให้กับโหนดใหม่ new->Data=4 new new
new 3 3 new 3.เปลี่ยนตำแหน่งชี้ของ Pointer ต่าง ๆ ดังนี้ (p->Next)->previous=new ให้ previous ของโหนด 3 ชี้ไปยังโหนดใหม่หรือ New new->Nexr=p->Next //ให้ Next ของ โหนดใหม่ ชี้ไปยัง โหนดที่ 3 เดิม new 3 3 new
5 new 5 new p->Next = new; new->Previous=p ให้ Previous ของโหนดใหม่ชี้ไปยังโหนดที่2เดิม 5 new 5 new
การแทรกโหนดใหม่มาเป็นโหนดแรก Doubly Linked-List