ลิงค์ลิสต์แบบโยงคู่ ซึ่งเป็นลิสต์ที่สามารถเชื่อมโยงโหนดด้วยพอยเตอร์ในลักษณะ 2 ทิศทาง ได้แก เชื่อมโยงโหนดจากหน้าไปหลังและขณะเดียวกันก็เชื่อมโยงโหนดจากหน้ามาหลังและขณะเดียวกันก็เชื่อมโยงโหนดจากหลังมาหน้าตามลำดับ
ลิงค์ลิสต์แบบโยงคู่ เป็นลิสต์ที่แต่ละโหนดต้องประกอบด้วยฟิลด์อย่างน้อยทั้งหมด 3 ฟิลด์ คือ info next back ดังภาพ
|
info |
Back next
Info คือ ข้อมูลที่เก็บอยู่ในโหนด
Next คือ พอยเตอร์ที่ชี้ไปยังโหนดถัดไป
Back คือ พอยเตอร์ที่ชี้ไปยังโหนดก่อนหน้า
ต่อไปนี้เป็นภาพตัวอย่างของลิงค์ลิสต์แบบโยงคู่ ซึ่งประกอบด้วยหลายโหนด
Yupa n Suda n Arun Dara
head
p q
ข้อสังเกตุ
1. ฟิลด์ back ของโหนดแรก และฟิลด์ next ของโหนดสุดท้ายมีค่า NULL
2. p->info หรือ q->back->info จะให้คำตอบเหมือนกันคือ Dara และ p->back->info จะให้คำตอบคือ Arun
การประกาศลิงค์ลิสต์แบบโยงคู่
#define STRING20 20 typedef struct ptr { char info [TRING20] ; struct ptr *next, *back ; } ptr ; Ptr *head, *start, *p, *q ;