ลิงค์ลิสต์ (Linked List)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ความรู้เบื้องต้นเกี่ยวกับระบบฐาจข้อมูล
Advertisements

โครงสร้างข้อมูลสแตก มีลักษณะเป็นรายการในแนวเชิงเส้น(Linear List)รูปแบบหนึ่ง และมีข้อกำหนดให้ชุดปฏิบัติการสามารถเพิ่มและลบรายการเพียงด้านเดียว ซึ่งเป็นด้านบนสุดของสแตก(Top.
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
ตารางแฮช Hash Table.
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
บทที่ 5 โครงสร้างข้อมูลคิว
Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความเหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมีดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด.
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
Functional programming part II
Stack.
Stack Holidays/seasonal content.
การเรียงลำดับและการค้นหาแบบง่าย
จำนวนเต็ม จำนวนเต็ม  ประกอบด้วย                   1. จำนวนเต็มบวก    ได้แก่  1 , 2 , 3 , 4, 5 , ....                   2.  จำนวนเต็มลบ      ได้แก่  -1.
Data structure & Algorithms
การจัดเก็บข้อมูลตามตัวบ่งชี้ สกอ. และ สมศ.
คิวQueue Circular Queue.
Seree Chinodom Recordset Object Seree Chinodom Computer Science, BUU.
Seree Chinodom Connection Object Seree Chinodom Computer Science, BUU.
SCC : Suthida Chaichomchuen
ขั้นตอนวิธี (Algorithm)
การพัฒนาเว็บด้วยโปรแกรมสำเร็จรูป
ลิ้งค์ลิสต์วงกลม วิธีการที่ทำให้สามารถวิ่งจาก โหนดหนึ่งจะไม่สามารถชี้กลับไป ยังโหนดอื่น ๆ ได้ในลิ้งค์ลิสต์ โดยให้ตัวชี้ของโหนดสุดท้ายซึ่ง เดิมเป็นค่า NULL.
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
รายวิชา ระบบฐานข้อมูล 1 หลักการวิเคราะห์และออกแบบระบบฐานข้อมูล
การลดขั้นตอนและระยะเวลาการปฏิบัติราชการ และการพิจารณาให้รางวัลคุณภาพ
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
วิธีสายงานวิกฤต Critical Path Method แบบ Activity on Arrow.
โครงสร้างข้อมูลคืออะไร ?
Linked List (ลิงค์ลิสต์)
บทที่ 5 Link List Link List.
Linked List List is group of nodes that consists of data and link.
บทที่ 3 การทำงานกับฟอร์ม (Form)
บทที่ 3 การทำงานกับฟอร์ม (Form)
การเขียนโปรแกรม PHP เชื่อมต่อกับ MySQL
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
อาร์เรย์ (Arrays).
โครงสร้างข้อมูลแบบรายการโยง (Link List)
ADO.NET (การบริหารและจัดการข้อมูล)
วิวัฒน์ ชินนาทศิริกุล
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
School of Information Communication Technology,
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
งบกองทุนหลักประกันสุขภาพ
การออกแบบส่วนติดต่อกับผู้ใช้ User Interface Design
การสร้างพจนานุกรม.
โครงสร้างข้อมูล Queues
โครงสร้างข้อมูลแบบลิงก์ลิสต์
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย เด็กชาย คณิศร อ้อยกลาง เลขที่ 36 ม.2/5 เสนอ อ.สายฝน เอกกันทา โรงเรียนจักรคำคณาทร จ.ลำพูน.
ค่าความจริงของประโยคที่มีตัวบ่งปริมาณ 2 ตัว
รูปร่างเครือข่ายคอมพิวเตอร์
รูปร่างของเครือข่ายคอมพิวเตอร์
การจัดเรียงข้อมูล (sorting)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
รูปร่างเครือข่ายคอมพิวเตอร์ จัดทำโดย
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
แบบดาว เป็นลักษณะของการต่อเครือข่ายที่ Work station แต่ละตัวต่อรวมเข้าสู่ ศูนย์กลางสวิตซ์ เพื่อสลับตำแหน่งของเส้นทางของข้อมูลใด ๆ ในระบบ ดังนั้น ใน โทโปโลยี
DATA STRUCTURE AND ALGORITHM Linked List.
ใบสำเนางานนำเสนอ:

ลิงค์ลิสต์ (Linked List) โครงสร้างข้อมูล ลิงค์ลิสต์ (Linked List)

ลิงค์ลิสต์ (Linked List) เป็นการจัดเก็บชุดข้อมูลเชื่อมโยงต่อเนื่องกันไปตามลำดับ โครงสร้างข้อมูลแบบลิงค์ลิสต์จะประกอบไปด้วยส่วนที่เรียกว่าสมาชิก ( Node) ส่วนเก็บข้อมูล (Data) และตำแหน่งของสมาชิกตัวถัดไป (Link) อาร์เรย์(Array) ลิงค์ลิสต์(Linked List)

โครงสร้างข้อมูลลิงค์ลิสต์ (Linked List) การแทนลิงค์ลิสต์ ในพื้นที่หน่วยความ

โครงสร้างข้อมูลลิงค์ลิสต์

โครงสร้างของโหนด

คุณสมบัติของลิงค์ลิสต์ ลิงค์ลิสต์จะใช้เฮดพอยน์เตอร์ (pHead)เป็นตัวชี้ไปยังโหนดแรกของลิสต์ ในขณะที่พอยน์เตอร์หรือลิงค์ของแต่ละโหนดก็จะเชื่อมโยงลิงค์ไปยังโหนดตัวถัดไปโดยโหนดตัวสุดท้ายที่ไม่มีลิงค์ให้เชื่อมต่อจะถูกกำหนดค่าให้เป็น null ซึ่งในที่นี้ใช้สัญลักษณ์ แทน โหนดของข้อข้อมูลจะประกอบไปด้วย Data และ Link โดย Data คือข้อมูลหรือสารสนเทศที่สามารถนำไปใช้ประโยชน์ Link คือตัวชี้หรือพอยน์เตอร์ที่ใช้สำหรับเชื่อมโยงไปยังโหนดถัดไป ไม่มีความสัมพันธ์ทางการภาพระหว่างโหนด ข้อมูลที่จัดเก็บภายในหน่วยความจำไม่จำเป็นต้องอยู่ติดกัน กรณีที่เฮดพอยน์เตอร์ไม่มีตัวชี้หรือไม่มีสมาชิก เฮดพอยน์เตอร์จะถูกกำหนดค่าเป็น null ซึ่งหมายถึงลิสต์ว่างนั่นเอง

ข้อดีของลิงค์ลิสต์ เป็นโครงสร้างที่ง่ายต่อการเพิ่มหรือลบข้อมูล ไม่จำเป็นต้องขยับอิลิเมนต์ของลิสต์ไปข้างหน้าเพื่อให้เกิดพื้นที่ว่าง ในกรณีที่มีการลบอิลิเมนต์ตรงส่วนหน้าหรือส่วนกลางของลิสต์เช่นเดียวกับอาร์เรย์ ใช้พื้นที่หน่วยความจำได้เต็มประสิทธิภาพ เนื่องจากหากข้อมูลภายในลิสต์มีน้อยก็ใช้น้อย ซึ่งผิดกับอาร์เรย์ที่ต้องสูญเสียพื้นที่ไปในทันที ถึงแม้จะไม่มีข้อมูลภายในลิสต์ก็ตาม

อัลกอริธึมของลิงค์ลิสต์ จะมีฟังก์ชันการดำเนินงานบนลิงค์ลิสต์ 10 ฟังก์ชันด้วยกัน

Create List เป็นการสร้าง Head ของลิงค์ลิสต์

Insert Node การแทรกโหนด ขั้นตอนในการแทรกโหนด จัดสรรหน่วยความจำสำหรับโหนดใหม่พร้อมกับข้อมูล กำหนดตัวชี้ให้กับลิงค์ฟิลด์ของโหนดใหม่ นำตัวชี้ที่อยู่ก่อนหน้าโหนดใหม่ชี้มายังโหนดใหม่ ในการแทรกโหนดเพิ่มเข้าไปในลิสต์สามารถทำได้ 4 รูปแบบคือ การแทรกโหนดในลิสต์ว่าง การแทรกโหนดที่ตำแหน่งแรก การแทรกโหนดตรงส่วนกลางของลิสต์ การแทรกโหนดที่ท้ายลิสต์

การแทรกโหนดในลิสต์ว่าง (Insert into Empty List)

การแทรกโหนดที่ตำแหน่งแรก (Insert at Beginning)

การแทรกโหนดตรงส่วนกลางของลิสต์ (Insert in Middle)

การแทรกโหนดที่ท้ายลิสต์ (Insert at End)

การลบโหนด (Delete Node) อัลกอริธึมการลบโหนดออกจากลิสต์ นอกจากจะนำโหนดที่ถูกลบส่งคนแก่หน่วยความจำระบบเพื่อจะได้นำไปใช้งานอื่นต่อไปแล้วยังต้องมีการปรับเปลี่ยนตัวชี้ใหม่ด้วย

การลบโหนดแรกที่ตำแหน่งแรก (Delete First Node)

การลบโหนดโดยทั่วไป (General Delete Case)

Linked List Operation Retrieve Node เป็นการดึงข้อมูลตัวที่ต้องการจากลิงค์ลิสต์ โดยค่าในลิงค์ลิสต์นั้นยังคงเดิม Empty List เป็นการตรวจสอบว่าลิงค์ลิสต์นั้นไม่มีข้อมูล ใด ๆ เก็บไว้ใช่หรือไม่ Full List เป็นการตรวจสอบว่าลิงค์ลิสต์นั้นมีข้อมูลเก็บอยู่เต็มตามข้อกำหนดใช่หรือไม่ List Count เป็นการนับจำนวนข้อมูลที่เก็บอยู่ในลิงค์ลิสต์ ซึ่งจะเสียเวลาในการทำงานมาก ดังนั้นจึงควรเก็บจำนวน ข้อมูลในลิงค์ลิสต์ไว้ด้วยเมื่อมีการเพิ่มหรือลบข้อมูล Traverse List เป็นการท่องไปในทุกโหนดของลิงค์ลิสต์ Destroy List เป็นการคืนพื้นที่หน่วยความจำ Search List เป็นการค้นหาข้อมูลในลิสต์

ลิงค์ลิสต์ชนิดอื่นๆ (Others Linked Lists) เซอร์คูลาร์ลิงค์ลิสต์ (Circular-Linked List) ดับเบิลลิงค์ลิสต์ (Double-Linked List) มัลติลิงค์ลิสต์ (Multilinked List)

เซอร์คูลาร์ลิงค์ลิสต์ (Circular-Linked List) หมายถึง ลิงค์ลิสต์ที่โหนดสุดท้ายสามารถวกกลับมาที่โหนดแรกได้ ดังเช่นตัวอย่างต่อไปนี้

ดับเบิลลิงค์ลิสต์ (Double-Linked List) หมายถึง ลิงค์ลิสต์ที่ทุกโหนดสามารถวกกลับมาที่โหนดก่อนหน้าของตนเองได้ ดังเช่นตัวอย่างต่อไปนี้

มัลติลิงค์ลิสต์ (Multilinked List) หมายถึง ลิงค์ลิสต์ที่สามารถเข้าถึงข้อมูลได้มากกว่า 1 คีย์ ดังเช่นตัวอย่างต่อไปนี้