SlideShare a Scribd company logo
 โครงสร้างข้อมูลแบบลิงค์ลิสต์
(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

คอมพิวเตอร์
คอมพิวเตอร์คอมพิวเตอร์
คอมพิวเตอร์พัน พัน
 
คู่อันดับและกราฟ
คู่อันดับและกราฟคู่อันดับและกราฟ
คู่อันดับและกราฟJiraprapa Suwannajak
 
บทที่ 2 เอกสารที่เกี่ยวข้อง
บทที่ 2 เอกสารที่เกี่ยวข้องบทที่ 2 เอกสารที่เกี่ยวข้อง
บทที่ 2 เอกสารที่เกี่ยวข้องKittichai Pinlert
 
Key9 saman taxobiodiver_kruwichaitu
Key9 saman taxobiodiver_kruwichaituKey9 saman taxobiodiver_kruwichaitu
Key9 saman taxobiodiver_kruwichaitu
Wichai Likitponrak
 
stem structure
stem structurestem structure
stem structure
Thanyamon Chat.
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
Poppy Thanawan
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์skiats
 
การอ้างเหตุผล
การอ้างเหตุผลการอ้างเหตุผล
การอ้างเหตุผลพัน พัน
 
คอมพลีเมนต์
คอมพลีเมนต์คอมพลีเมนต์
คอมพลีเมนต์Aon Narinchoti
 
อนุพันธ์
อนุพันธ์อนุพันธ์
อนุพันธ์krurutsamee
 
58210401110 งาน1 ss ครับ
58210401110 งาน1 ss ครับ58210401110 งาน1 ss ครับ
58210401110 งาน1 ss ครับ
ศุภกร หาญกุล
 
Minibookbio 5 932
Minibookbio 5 932Minibookbio 5 932
Minibookbio 5 932
SuwattanaSonsang
 
สังคมก้มหน้า
สังคมก้มหน้าสังคมก้มหน้า
สังคมก้มหน้า
Muna Bap
 
พื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรพื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรJiraprapa Suwannajak
 
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
Sircom Smarnbua
 
เนื้อหาความรู้เรื่องโครงงานวิทย์
เนื้อหาความรู้เรื่องโครงงานวิทย์เนื้อหาความรู้เรื่องโครงงานวิทย์
เนื้อหาความรู้เรื่องโครงงานวิทย์
สนุกคิด กับวิทยาศาสตร์
 
เนื้อเยื่อพืช
เนื้อเยื่อพืชเนื้อเยื่อพืช
เนื้อเยื่อพืช
Thanyamon Chat.
 

What's hot (20)

คอมพิวเตอร์
คอมพิวเตอร์คอมพิวเตอร์
คอมพิวเตอร์
 
คู่อันดับและกราฟ
คู่อันดับและกราฟคู่อันดับและกราฟ
คู่อันดับและกราฟ
 
ผลต่าง
ผลต่างผลต่าง
ผลต่าง
 
บทที่ 2 เอกสารที่เกี่ยวข้อง
บทที่ 2 เอกสารที่เกี่ยวข้องบทที่ 2 เอกสารที่เกี่ยวข้อง
บทที่ 2 เอกสารที่เกี่ยวข้อง
 
Key9 saman taxobiodiver_kruwichaitu
Key9 saman taxobiodiver_kruwichaituKey9 saman taxobiodiver_kruwichaitu
Key9 saman taxobiodiver_kruwichaitu
 
stem structure
stem structurestem structure
stem structure
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
Lecture7 การแปลงโมเดลแบบ E-R เป็นรูปแบบโมเดลเชิงสัมพันธ์
 
การอ้างเหตุผล
การอ้างเหตุผลการอ้างเหตุผล
การอ้างเหตุผล
 
คอมพลีเมนต์
คอมพลีเมนต์คอมพลีเมนต์
คอมพลีเมนต์
 
อนุพันธ์
อนุพันธ์อนุพันธ์
อนุพันธ์
 
58210401110 งาน1 ss ครับ
58210401110 งาน1 ss ครับ58210401110 งาน1 ss ครับ
58210401110 งาน1 ss ครับ
 
Minibookbio 5 932
Minibookbio 5 932Minibookbio 5 932
Minibookbio 5 932
 
สังคมก้มหน้า
สังคมก้มหน้าสังคมก้มหน้า
สังคมก้มหน้า
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
พื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรพื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตร
 
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
1 ภาคผนวก ก ภาพนักสำรวจ 4 ขั้นตอน
 
เนื้อหาความรู้เรื่องโครงงานวิทย์
เนื้อหาความรู้เรื่องโครงงานวิทย์เนื้อหาความรู้เรื่องโครงงานวิทย์
เนื้อหาความรู้เรื่องโครงงานวิทย์
 
เนื้อเยื่อพืช
เนื้อเยื่อพืชเนื้อเยื่อพืช
เนื้อเยื่อพืช
 
ข้อสอบเทอม1 ม.2
ข้อสอบเทอม1 ม.2ข้อสอบเทอม1 ม.2
ข้อสอบเทอม1 ม.2
 

More from tumetr

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