ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
ได้พิมพ์โดยศิริวรรณ รักไทย ได้เปลี่ยน 9 ปีที่แล้ว
1
DATA STRUCTURE AND ALGORITHM 3901-2002 WOOTICHAI_K@HOTMAIL.COM Linked List
2
แนวคิดพื้นฐานเกี่ยวกับลิสต์แบบเชิงเส้น ลิสต์แบบทั่วไป (General List) ลิสต์แบบมีข้อจำกัด (Restricted List) แนวคิดพื้นฐานของลิงก์ลิสต์ (Linked List Concept) โครงสร้างข้อมูลแบบลิงก์ลิสต์ การดำเนินงานพื้นฐานของลิสต์ (Basic Operation) หัวข้อ
3
ข้อมูลภายในลิสต์มีลักษณะเป็นลำดับต่อเนื่อง สมาชิกแต่ละตัวจะเชื่อมโยงกับสมาชิกตัวถัดไป ต่อเนื่องกัน แนวคิดพื้นฐานเกี่ยวกับ ลิสต์แบบเชิงเส้น Element 1 Element 2 Element 3 Element 4
4
สามารถแทรก หรือลบรายการลิสต์ ณ ตำแหน่ง ใดๆ ก็ได้ สามารถแบ่งออกเป็น ลิสต์แบบสุ่ม (Random List) ข้อมูลภายในลิสต์จะไม่เรียงลำดับ ลิสต์แบบเรียงลำดับ (Order List) ข้อมูลจะถูกจัดเรียงด้วยคีย์ ซึ่งอาจเป็นฟิลด์ใด ฟิลด์หนึ่ง หรือหลายฟิลด์ ลิสต์แบบทั่วไป (General List)
5
การเพิ่มหรือลบข้อมูลออกจากลิสต์จะต้องทำที่ จุดปลายด้านใดด้านหนึ่งของลิสต์เท่านั้น ลิสต์แบบมีข้อจำกัด (Restricted List) Linear List General Random Ordered Restricted FIFO (Queue) LIFO (Stack)
6
ข้อมูลภายในหน่วยความจำจะไม่ได้อยู่ในลำดับ ต่อเนื่องเหมือนกับอาร์เรย์ ข้อมูลแต่ละตัวจะถูกเชื่อมโยงด้วยลิงก์หรือ พอยต์เตอร์ (Pointer) ข้อมูลแต่ละตัวจะถูกเรียกว่า โหนด ซึ่งภายใน โหนดจะประกอบด้วย ข้อมูล (Data) ลิงก์ (Link) ใช้เชื่อมโยงกับโหนดถัดไป จะเก็บตำแหน่ง (Address) ของโหนดถัดไป แนวคิดพื้นฐานของลิงก์ลิสต์ (Linked List Concept) DATA LI NK DATA LI NK DATA LI NK HE AD
7
โครงสร้างข้อมูลแบบลิงก์ลิสต์ Count Head Data Link Head Structure Node Structure
8
การแทรก (Insertion) การลบ (Deletion) การอ่าน (Retrieval) การท่องเข้าไปในลิสต์ (Traversal) การดำเนินงานพื้นฐานของลิสต์ (Basic Operation)
9
การสร้างลิสต์ (Create Lits) Allocate (List) Set List Head to null Set List Count to 0 อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm) 0 0 null List CountHead
10
การแทรกโหนด (Insert Node) การแทรกโหนดในลิสก์ว่าง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Lin k NULL 1. Allocate Newnode สร้างโหนดใหม่ชื่อว่า Newnode Newn ode Count He ad LIst
11
การแทรกโหนด (Insert Node) การแทรกโหนดในลิสก์ว่าง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) 2. Set Newnode Link to List Head ให้ Link ของ Newnode ชี้ที่เดียวกับ Head ของ List Data Lin k NULL Newn ode Count He ad LIst
12
การแทรกโหนด (Insert Node) การแทรกโหนดในลิสก์ว่าง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) 3. Set List Head to Newnode ให้ Head ของ List ชี้ที่เดียวกับ Newnode Data Lin k NULL Newn ode Count He ad LIst
13
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Lin k NULL Count He ad LIst 1. Allocate Newnode สร้างโหนดใหม่ชื่อว่า Newnode Data Lin k Newn ode
14
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Lin k NULL Count He ad LIst 2. Set Newnode Link to List Head ให้ Link ของ Newnode ชี้ที่เดียวกับ Head ของ List Data Lin k Newn ode
15
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Lin k NULL Count He ad LIst 3. Set List Head to Newnode ให้ Head ของ List ชี้ที่เดียวกับ Newnode Data Lin k Newn ode
16
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งกึ่งกลาง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 1. Allocate Newnode สร้างโหนดใหม่ชื่อว่า Newnode Data Li nk Data Li nk Newn ode
17
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งกึ่งกลาง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 2. Set Pre to before insert Node สร้างพอยเตอร์ Pre ชี้ไปยังตำแหน่งก่อนหน้าที่จะแทรก Data Li nk Data Li nk Newn ode Pre
18
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งกึ่งกลาง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 3. Set Newnode Link to Pre Link ให้ Link ของ Newnode ชี้ที่เดียวกับ Link ของ Pre Data Li nk Data Li nk Newn ode Pre
19
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งกึ่งกลาง อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 4. Set Pre Link to Newnode ให้ Link ของ Pre ชี้ที่เดียวกับ Newnode Data Li nk Data Li nk Newn ode Pre
20
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งท้ายลิสต์ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 1. Allocate Newnode สร้างโหนดใหม่ชื่อว่า Newnode Data Li nk Data Li nk Newn ode
21
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งท้ายลิสต์ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 2. Set Pre to last Node สร้างพอยเตอร์ Pre ชี้ไปยังตำแหน่งโหนดสุดท้าย Data Li nk Data Li nk Newn ode Pre
22
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งท้ายลิสต์ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 3. Set Newnode Link to Pre Link (NULL) ให้ Link ของ Newnode ชี้ที่เดียวกับ Link ของ Pre (NULL) Data Li nk Data Li nk Newn ode Pre
23
การแทรกโหนด (Insert Node) การแทรกโหนดในตำแหน่งท้ายลิสต์ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 4. Set Pre Link to Newnode ให้ Link ของ Pre ชี้ที่เดียวกับ Newnode Data Li nk Data Li nk Newn ode Pre
24
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 1. Set Loc to delete Node สร้างพอยเตอร์ Loc ชี้ไปยังโหนดที่ต้องการลบ Data Li nk Data Li nk Loc
25
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 2. Set List Head to Loc Link ให้ Head ของ List ชี้ที่เดียวกับ Link ของ Loc Data Li nk Data Li nk Loc
26
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งแรก อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 3. Delete Loc คืนค่าโหนดที่ถูกลบให้แก่ระบบ Data Li nk Data Li nk Loc
27
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งใดๆ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 1. Set Loc to delete Node สร้างพอยเตอร์ Loc ชี้ไปยังโหนดที่ต้องการลบ Data Li nk Data Li nk Loc
28
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งใดๆ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 2. Set Pre to before delete Node สร้างพอยเตอร์ Pre ชี้ไปยังโหนดก่อนหน้าโหนดที่ต้องการลบ Data Li nk Data Li nk Loc Pre
29
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งใดๆ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 3. Set Pre Link to Loc Link ให้ Link ของ Pre ชี้ที่เดียวกับ Link ของ Loc Data Li nk Data Li nk Loc Pre
30
การลบโหนด (Delete Node) การลบโหนดในตำแหน่งใดๆ อัลกอริทึมของลิงก์ลิสต์ (Linked List Algorithm)( ต่อ ) Data Li nk NULL Count He ad LIst 4. Delete Loc คืนค่าโหนดที่ถูกลบให้แก่ระบบ Data Li nk Data Li nk Loc Pre
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.