ลิงค์ลิสต์แบบโยงคู่   ซึ่งเป็นลิสต์ที่สามารถเชื่อมโยงโหนดด้วยพอยเตอร์ในลักษณะ  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 ;