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

 

ตัวอย่าง  การเขียนฟังก์ชันชื่อ  insEnd1  เพื่ออ่านชื่อของนักศึกษาจากแป้นพิมพ์เข้าเก็บในแต่ละโหนดของลิงค์ลิสต์  แต่ละโหนดที่นำมาเชื่อมต่อเป็นลิสต์จะใช้วิธีการเชื่อมโยงที่ปลายของลิสต์เสมอ

 

        Void  insEnd1 (Ptr  **root)

            {

              Ptr  *p,  *start  ;

              Char  s [STRING25];

             *root  =  null;

              while  (scanf(“%s ” , s)  !=EOF  )

              {

                        p=new  Ptr ;                                             /*สร้างโหนดใหม่*/

                        strcpy(p->name,s);                                  /*อ่านค่าเก็บในโหมดที่สร้างใหม่*/

                        p -> next = NULL;

                        if  (*root== NULl ;

root = p ;           

                    else

                   {

                              start  \  *root  ; 

                              while  (start->next  !=NULL)

                                          start  =  start->next;  /*ท่องลิสต์เพื่อหาโหนดสุดท้าย*/

                                       /*เชื่อมโยงโหนดใหม่เข้ากับโหนดสุดท้าย*/

                                      start -> next –p;

                       }

                 }   /*while*/

                 }            /*insFront*/

  

ตัวอย่างที่2 การเขียนฟังก์ชันชื่อ   insEnd2 เพื่ออ่านชื่อของนักศึกษาจากแป้นพิมพ์เข้าเก็บในแต่ละโหนดของลิสต์  แต่ละโหนดที่นำมาเชื่อมต่อจะใช้วิธีการเชื่อมโยงที่ด้านปลายสุดของลิงค์ลิสต์วัตุถุประสงค์ของฟังก์ชั่นนี้เหมือนกับวัตถุประสงค์ในตัวอย่างที่1  แต่นำมาปรับปรุงการเขียนให้มีประสิทธิภาพโดยรวมมากขึ้น

   

    Void  insEnd2 (Ptr  **root)

            {

              Ptr  *p,  *last  ;

              Char  s [STRING25];

             *root  =  null;

              while  (scanf(“%s ” , s)  !=EOF  )

              {

                        p = new  Ptr ;                                            

                        strcpy(p->name,s);                                  

                        if  (*root== NULL)

                        {

root = p ;   

last = p ;                                      /*lastจะชี้ที่โหนดสุดท้ายเสมอ*/       

                      }

                      else

                     {

                                    

                             last -> next = p ;                    /*เชื่อมโหนดใหม่หลังโหนดที่ชี้โดยlast*/

                                  last = p ;                                /*เปลี่ยน last ชี้ยังโหมดใหม่ซึ่งเป็นโหนดท้ายสุด*/            

                           }   /* end  if */

                       }  */ while*/

                   /*กำหนดให้โหนดสุดท้ายมีฟิลด์พอยเตอร์เป็น NULL

                               last -> next = NULL ;

                 }          /*insEnd2*/