งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

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

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ลิงค์ลิสต์ (Linked List)"— ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


ดาวน์โหลด ppt ลิงค์ลิสต์ (Linked List)

งานนำเสนอที่คล้ายกัน


Ads by Google