ทุกครั้งของการนำโหนดเข้าไปแทรกด้านปลาย เราจำเป็นต้องท่องเข้าไปแทรกด้านปลาย เราจำเป็นต้องท่องเข้าไปที่ปลายสุดของลิงค์ลิสต์ เพื่อให้พอยเตอร์ที่ท่องเข้าไปชี้อยู่ที่โหนดสุดท้าย จากนั้นจึงทำการเชื่อมโยงโหนดสุดท้ายกับโหนดใหม่ที่นำมาต่อกัน
ตัวอย่าง การเขียนฟังก์ชันชื่อ 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*/