SlideShare a Scribd company logo
1 of 18
 โครงสร้างข้อมูลแบบลิงค์ลิสต์
(Linked List)
โครงสร้างข้อมูล (Data Structure)
โครงสร้างข้อมูลแบบลิงค์ลิสต์
(Linked List)
 ลิงค์ลิสต์เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกัน
ไปตามลำาดับ ซึ่งอาจอยู่ในลักษณะแบบเชิงเส้นตรง
(linear) หรือ ไม่เป็นเส้นตรง (nonlinear) ก็ได้ ซึ่ง
ในลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด
(node) ในหนึ่งโหนดจะประกอบด้วยส่วนของข้อมูลที่
ต้องการจัดเก็บ เรียกว่าส่วน Info และส่วนที่เป็น
พอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link) หรือชี้ไปยัง
โหนดอื่นๆที่อยู่ในลิสต์ หากไม่มีโหนดที่อยู่ถัดไป ส่วน
โครงสร้างข้อมูลแบบลิงค์ลิสต์
(Linked List)

Linke d list คล้ายๆ กับขบวนรถไฟ ตรงที่ว่าการที่จะเกิด
เป็นขบวนรถไฟได้จะต้องมีการนำาโบกี้รถไฟหลายๆ
โบกี้มาต่อกัน ขบวนจะสั้นหรือยาวก็ขึ้นอยู่กับโบกี้
เหล่านี้ หากผู้โดยสารโบกี้แรกๆ ต้องการที่จะไปยัง
โบกี้สุดท้ายก็ต้องเดินผ่านโบกี้อื่นๆ ระหว่างทางด้วย
โครงสร้างข้อมูลแบบลิงค์ลิสต์
(Linked List)
 โหนด (Node)
 โครงสร้างแบบ Linked list แบ่งได้หลายแบบตามวิธีการชี้
ไปยังโหนดต่างๆ เช่น Singly Linked list , Doubly
Linked list , Multi-Linked list
 Singly Linked list
Singly Linked list จะประกอบด้วยโหนดที่มีพอยน์เตอร์ชี้
ไปในทิศทางเดียว คือชี้ไปยังโหนดถัดไป
โครงสร้างข้อมูลแบบลิงค์ลิสต์
(Linked List)
 Doubly Linked list
Doubly linked list ประกอบด้วยส่วนของ Info
และ พอยน์เตอร์ที่ชี้ไป 2 ทิศทาง คือ ชี้ไปยังโหนด
ถัดไป และชี้ไปยังโหนดก่อนหน้า ดังนั้นเราจึง
สามารถทำาการอ่านข้อมูลได้ 2 วิธี คือ การอ่านไป
ข้างหน้า และอ่านไปทางข้างหลัง
การทำางานของลิสต์
 การสร้างลิสต์ว่าง
 การทดสอบว่าลิสต์ว่างหรือไม่
 การเพิ่มสมาชิกใหม่ลงในลิสต์
 การลบสมาชิกออกจากลิสต์
 การท่องไปในลิสต์หรือส่วนของลิสต์ โดยการเข้าถึง
สมาชิก และประมวลผลสมาชิกแบบลำาดับ
การสร้างรายการว่าง
typedef struct listnode{ // create list node type
int value;
struct listnode *next;
} LISTNODE;
LISTNODE *numlist=NULL;
numlist =(LISTNODE *)malloc(sizeof(LISTNODE));
numlist
ทดสอบว่ารายการว่างหรือไม่
// return 1 if list is empty, else return 0.
int islempty(LISTNODE *head)
{
return (head == NULL);
}
numlist
=
NULL
การเพิ่มสมาชิกใหม่ลงในรายการ
 Insert first element
 Insert element on head of list
 Insert element between list
 Insert element on end of list
Insert first element
numlist = getnode(); // head of list
numlist->value = 23;
numlist->next = NULL;
numlist 23 NULL
Insert element on head of list
NEW = getnode(); // head of list
NEW->value = 20;
NEW->next = numlist;
NEW
20
numlist 23 NULL
numlist = NEW;
Insert element between list
NEW = getnode();
NEW->value = 24;
NEW->next = numlist->next ;
numlist 23
numlist->next = NEW;
25
NULL
NEW 24
Insert element on end of list
NEW = getnode();
NEW->value = 25;
NEW->next = NULL;
NEW
25
numlist 23 NULL
numlist->next = NEW;
NULL
การลบสมาชิกออกจากรายการ
 delete element on head of list
 delete element between list
 delete element on end of list
delete element on head of list
if( numlist->value == 23 ){ // test value of head node
backup = numlist; // backup head node
numlist = numlist->next; // move head to next node
23
free(backup); // free backup node
}
25
NULL
24backup
delete element between list
ptr = ptr->next; // move ptr to next node
if( (ptr->next)->value == 24 ){ // test value of next node
backup = ptr->next; // backup next node
ptr->next = (ptr->next)->next; // point next node to skip 1 node
23
free(backup); // free backup node
}
25
NULL
24
backup
delete element on end of list
while(ptr->next!=NULL){
ptr = ptr->next; // move ptr to next node
if( (ptr->next)->value == 25 ){ // test value of next node
backup = ptr->next; // backup next node
ptr->next = (ptr->next)->next; // point next node to skip 1 node
23
free(backup); // free backup node
break;
}
} 25
NULL
24
ptr backup
การเข้าถึงสมาชิกของรายการ
void printlst(LISTNODE *numlist)
{
LISTNODE *ptr=numlist;
while(ptr!=NULL){
printf("%3d",ptr->value);
ptr = ptr->next; // next node
}
}
23 25
NULL
24
ptr
numlist

More Related Content

What's hot

ส่วนหน้าของแผนการจัดการเรียนรู้
ส่วนหน้าของแผนการจัดการเรียนรู้ ส่วนหน้าของแผนการจัดการเรียนรู้
ส่วนหน้าของแผนการจัดการเรียนรู้
krupornpana55
 
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
Orawonya Wbac
 
1410255310224
14102553102241410255310224
1410255310224
amonteer
 
รวมสูตรฟิสิกส์ ม.6
รวมสูตรฟิสิกส์ ม.6รวมสูตรฟิสิกส์ ม.6
รวมสูตรฟิสิกส์ ม.6
Mu PPu
 
การแก้ปัญหา
การแก้ปัญหาการแก้ปัญหา
การแก้ปัญหา
Jintana Kujapan
 
เรื่อง การสื่อสารข้อมูล
เรื่อง การสื่อสารข้อมูลเรื่อง การสื่อสารข้อมูล
เรื่อง การสื่อสารข้อมูล
BanjamasJandeng21
 

What's hot (20)

Business plan
Business planBusiness plan
Business plan
 
ส่วนหน้าของแผนการจัดการเรียนรู้
ส่วนหน้าของแผนการจัดการเรียนรู้ ส่วนหน้าของแผนการจัดการเรียนรู้
ส่วนหน้าของแผนการจัดการเรียนรู้
 
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
หลักเศรษฐศาสตร์ เรื่องอรรถประโยชน์
 
โครงงานประวัติของฟุตบอล
โครงงานประวัติของฟุตบอลโครงงานประวัติของฟุตบอล
โครงงานประวัติของฟุตบอล
 
โครงงานเรขาคณิตศาสตร์
โครงงานเรขาคณิตศาสตร์โครงงานเรขาคณิตศาสตร์
โครงงานเรขาคณิตศาสตร์
 
1.4 สถิติเชิงอนุมาน
1.4 สถิติเชิงอนุมาน1.4 สถิติเชิงอนุมาน
1.4 สถิติเชิงอนุมาน
 
1410255310224
14102553102241410255310224
1410255310224
 
ความน่าจะเป็นและวิธีนับ(Probability)
ความน่าจะเป็นและวิธีนับ(Probability)ความน่าจะเป็นและวิธีนับ(Probability)
ความน่าจะเป็นและวิธีนับ(Probability)
 
บทที่ 4 ยารักษาโรคเบาหวาน
บทที่ 4 ยารักษาโรคเบาหวานบทที่ 4 ยารักษาโรคเบาหวาน
บทที่ 4 ยารักษาโรคเบาหวาน
 
รวมสูตรฟิสิกส์ ม.6
รวมสูตรฟิสิกส์ ม.6รวมสูตรฟิสิกส์ ม.6
รวมสูตรฟิสิกส์ ม.6
 
การแก้ปัญหา
การแก้ปัญหาการแก้ปัญหา
การแก้ปัญหา
 
ไอโซเมอร์
ไอโซเมอร์ไอโซเมอร์
ไอโซเมอร์
 
โครงงานขนมจีบ
โครงงานขนมจีบโครงงานขนมจีบ
โครงงานขนมจีบ
 
เรื่อง การสื่อสารข้อมูล
เรื่อง การสื่อสารข้อมูลเรื่อง การสื่อสารข้อมูล
เรื่อง การสื่อสารข้อมูล
 
รากที่สอง..
รากที่สอง..รากที่สอง..
รากที่สอง..
 
ความร้อน
ความร้อนความร้อน
ความร้อน
 
Vit&mineral acr56
Vit&mineral acr56Vit&mineral acr56
Vit&mineral acr56
 
โจทย์ปัญหาค่าเฉลี่ยเลขคณิต
โจทย์ปัญหาค่าเฉลี่ยเลขคณิตโจทย์ปัญหาค่าเฉลี่ยเลขคณิต
โจทย์ปัญหาค่าเฉลี่ยเลขคณิต
 
เริ่มต้นใช้งานชุดกล่องสมองกล IPST-SE
เริ่มต้นใช้งานชุดกล่องสมองกล IPST-SEเริ่มต้นใช้งานชุดกล่องสมองกล IPST-SE
เริ่มต้นใช้งานชุดกล่องสมองกล IPST-SE
 
ThailandPost Presentation
ThailandPost PresentationThailandPost Presentation
ThailandPost Presentation
 

More from tumetr

ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
tumetr
 
Aec rit v.1.0-facebook
Aec rit v.1.0-facebookAec rit v.1.0-facebook
Aec rit v.1.0-facebook
tumetr
 
Aec rit v.1.0-po_p
Aec rit v.1.0-po_pAec rit v.1.0-po_p
Aec rit v.1.0-po_p
tumetr
 
ทรัพยากรมนุษย์และการออกแบบงาน
ทรัพยากรมนุษย์และการออกแบบงานทรัพยากรมนุษย์และการออกแบบงาน
ทรัพยากรมนุษย์และการออกแบบงาน
tumetr
 
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการกลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
tumetr
 
กลยุทธ์การวางผังสถานประกอบการ
กลยุทธ์การวางผังสถานประกอบการกลยุทธ์การวางผังสถานประกอบการ
กลยุทธ์การวางผังสถานประกอบการ
tumetr
 

More from tumetr (20)

ขั้นตอนการสร้าง Facebook page
ขั้นตอนการสร้าง Facebook pageขั้นตอนการสร้าง Facebook page
ขั้นตอนการสร้าง Facebook page
 
ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
ตั้งรับ ขับเคลื่อนธุรกิจและผลักดันคนไอทีไทยสู่-Aec-2015
 
Aec rit v.1.0-facebook
Aec rit v.1.0-facebookAec rit v.1.0-facebook
Aec rit v.1.0-facebook
 
Aec rit v.1.0-po_p
Aec rit v.1.0-po_pAec rit v.1.0-po_p
Aec rit v.1.0-po_p
 
The system-analysis-and-design
The system-analysis-and-designThe system-analysis-and-design
The system-analysis-and-design
 
การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)การพัฒนาและติดตั้งระบบ(System implementation)
การพัฒนาและติดตั้งระบบ(System implementation)
 
พจนานุกรมข้อมูล
พจนานุกรมข้อมูลพจนานุกรมข้อมูล
พจนานุกรมข้อมูล
 
ส่วนจัดการสื่อประสานผู้ใช้(User interface-management)
ส่วนจัดการสื่อประสานผู้ใช้(User interface-management)ส่วนจัดการสื่อประสานผู้ใช้(User interface-management)
ส่วนจัดการสื่อประสานผู้ใช้(User interface-management)
 
ระบบ (System)
ระบบ (System)ระบบ (System)
ระบบ (System)
 
An approach-to-planning-software-projects
An approach-to-planning-software-projectsAn approach-to-planning-software-projects
An approach-to-planning-software-projects
 
An introduction
An introductionAn introduction
An introduction
 
Huffman
HuffmanHuffman
Huffman
 
ทรัพยากรมนุษย์และการออกแบบงาน
ทรัพยากรมนุษย์และการออกแบบงานทรัพยากรมนุษย์และการออกแบบงาน
ทรัพยากรมนุษย์และการออกแบบงาน
 
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการกลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
กลยุทธ์การเลือกทำเลที่ตั้งสถานประกอบการ
 
กลยุทธ์การวางผังสถานประกอบการ
กลยุทธ์การวางผังสถานประกอบการกลยุทธ์การวางผังสถานประกอบการ
กลยุทธ์การวางผังสถานประกอบการ
 
หน่วยที่ 5.3.2 การสุขาภิบาลอาหาร
หน่วยที่ 5.3.2 การสุขาภิบาลอาหารหน่วยที่ 5.3.2 การสุขาภิบาลอาหาร
หน่วยที่ 5.3.2 การสุขาภิบาลอาหาร
 
หน่วยที่ 5.3.1 สารปนเปื้อนในอาหาร
หน่วยที่ 5.3.1 สารปนเปื้อนในอาหารหน่วยที่ 5.3.1 สารปนเปื้อนในอาหาร
หน่วยที่ 5.3.1 สารปนเปื้อนในอาหาร
 
หน่วยที่ 5.2 ผลิตภัณฑ์อาหารเพื่อสุขภาพ
หน่วยที่ 5.2 ผลิตภัณฑ์อาหารเพื่อสุขภาพหน่วยที่ 5.2 ผลิตภัณฑ์อาหารเพื่อสุขภาพ
หน่วยที่ 5.2 ผลิตภัณฑ์อาหารเพื่อสุขภาพ
 
avl tree ,b-tree
avl tree ,b-treeavl tree ,b-tree
avl tree ,b-tree
 
การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)การวิเคราะห์อัลกอริทึม(algorithm analysis)
การวิเคราะห์อัลกอริทึม(algorithm analysis)
 

โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)