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

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

Linked List ( ลิงค์ลิสต์ ). Linked List เนื่องจากการจัดเก็บข้อมูลแบบ Array จะต้องจองเนื้อที่ ทั้งหมดที่จะใช้ไว้ก่อน เช่น ต้องการจัดเก็บข้อมูลจำนวน 1,000.

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


งานนำเสนอเรื่อง: "Linked List ( ลิงค์ลิสต์ ). Linked List เนื่องจากการจัดเก็บข้อมูลแบบ Array จะต้องจองเนื้อที่ ทั้งหมดที่จะใช้ไว้ก่อน เช่น ต้องการจัดเก็บข้อมูลจำนวน 1,000."— ใบสำเนางานนำเสนอ:

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

2 Linked List เนื่องจากการจัดเก็บข้อมูลแบบ Array จะต้องจองเนื้อที่ ทั้งหมดที่จะใช้ไว้ก่อน เช่น ต้องการจัดเก็บข้อมูลจำนวน 1,000 ค่า แต่ละค่าใช้เนื้อที่ 2 byte เนื้อที่ทั้งหมดจะ เป็น 2,000 byte

3 Linked List ดังนั้นในการใช้งานตัวแปรแบบ array จะต้องหา เนื้อที่ที่อยู่ติดกัน 2,000 byte และเนื้อที่ว่างที่ ได้ จะไม่สามารถนำไปใช้กับการจัดเก็บข้อมูล อื่น ๆ ได้ ถ้าไม่สามารถหาเนื้อที่ว่างติดกัน 2,000 byte ได้ ก็จะไม่สามารถใช้งานได้ เช่น ไม่สามารถสั่งให้โปรแกรมทำงาน (execute) ได้ ถึงแม้ว่าจะ compile ผ่านแล้วก็ตาม เพราะ เมื่อมีการสั่งให้โปรแกรมทำงาน ตัวแปรทุกตัวที่ ใช้จะต้องมีการจับจองเนื้อที่ใน หน่วยความจำ เมื่อไม่สามารถจับจองเนื้อที่ได้ compiler ของ ภาษาที่ใช้เขียนโปรแกรมอาจจะแจ้งข้อผิด พลาด (error) ว่า Out of memory หรือ Not enough memory หรือ Insufficience memory ฯลฯ

4 Linked List ปัญหาของตัวแปร Array 1. ต้องได้เนื้อที่ว่างที่อยู่ติดกันตามจำนวนเนื้อที่ทั้งหมด ถ้ามีเนื้อที่ว่างดังนี้ จุดที่ 1 ว่าง 1,900 byte จุดที่ 2 ว่าง 800 byte จุดที่ 3 ว่าง 1,990 byte จุดที่ 4 ว่าง 10 byte จะเห็นว่าไม่มีจุดใดเลยที่มีเนื้อที่ว่างติดกัน 2,000 byte ดังนั้นโปรแกรมนี้ไม่สามารถทำงานได้ 2. กรณีที่จองเนื้อที่ไว้ 2,000 byte เก็บข้อมูล 1,000 ค่า แต่การใช้งานจริง ๆ เก็บข้อมูลเพียง 100 ค่า ใช้เนื้อที่ ไปเพียง 200 byte ทำให้เหลือเนื้อที่ที่ไม่ได้ใช้ 1,800 byte ซึ่งเนื้อที่ 1,800 byte จะถูกกันไว้ สำหรับตัวแปรนั้น ๆ ดังนั้นเนื้อที่ที่เหลือจะไม่สามารถนำไปใช้งานอื่นได้ 3. กรณีที่จองเนื้อที่ไว้เก็บข้อมูล 1,000 ค่า แต่การใช้ งานจริง ๆ ต้องการมากกว่า 1,000 ค่า เช่น ต้องการเพิ่ม อีก 2 ค่า ก็ไม่สามารถที่จะเพิ่มเติมข้อมูลได้ ( จองไว้แค่ไหน ใช้ แค่นั้น ) จากปัญหาของ array ทั้ง 3 ข้อ สามารถแก้ปัญหาได้ โดยใช้ linked lists

5 ลักษณะ Linked lists ลักษณะ Linked lists Linked lists จะไม่มีการจองเนื้อที่ หรือที่อยู่ (address) ใน memory ไว้ก่อน เมื่อต้องการใช้ จึงจะทำการขอ เนื้อที่ ซึ่งก็จะทำการขอเนื้อที่ สำหรับ 1 ค่า เมื่อต้องการใช้สำหรับข้อมูลต่อไป ก็จะทำการขอเนื้อที่อีก และเนื้อที่ที่ ขอใหม่ ไม่ จำเป็นต้องเป็นเนื้อที่ที่อยู่ติดกัน แต่เป็นเนื้อที่ บริเวณใดก็ได้ ที่หาและพบว่าว่าง ดังนั้น เมื่อ เนื้อที่ไม่ได้อยู่ ติดกัน จะต้องมีตัวที่ทำหน้าที่จำ ว่าข้อมูลตัวต่อไปเก็บอยู่ที่ address ใด ซึ่งตัวที่ ทำหน้าที่จำจะหมายถึงตัวที่ทำหน้าที่ เชื่อม ระหว่างข้อมูลใด ๆ กับข้อมูลตัวต่อไป ซึ่งการ เชื่อมนี้เรียกว่า link และเมื่อเชื่อมข้อมูลหลาย ๆ ค่าเข้าด้วยกัน 1 ชุด จะเรียกว่า list

6 ลักษณะ Linked lists ข้อมูล 1 ค่า จะเรียกว่า node ซึ่งแต่ละ node จะ ประกอบด้วย - ข้อมูลที่จัดเก็บ - address ของ node ( ข้อมูล ) ต่อไป

7 ลักษณะ Linked lists list ของข้อมูลตัวเลขจำนวน 5 ค่า ดังแสดงในภาพที่ 3

8 ลักษณะ Linked lists จากการจัดเก็บข้อมูลของ list ในภาพที่ 3 สามารถ เขียนใหม่เพื่อให้เห็นอยู่ในลักษณะของ link ได้ชัดเจน เรียกว่า ภาพเสมือนดังแสดงในภาพที่ 4

9 Linked lists แก้ปัญหา Array แก้ปัญหาที่ 1 เนื่องจาก linked list จะขอ เนื้อที่ครั้งละ 1 ค่า และเนื้อที่ที่ขอไม่ จำเป็นต้องติดกัน ดังนั้น สามารถใช้เนื้อที่ ว่างตามจุดต่าง ๆ ได้ เช่น ต้องการเนื้อที่ สำหรับข้อมูล 1,000 ค่า แต่ละ ค่าใช้ 2 byte ก็จะทำการขอเนื้อที่ทีละ 1 ค่า คือ 2 byte จำนวน 1,000 ครั้ง ซึ่งสามารถใช้เนื้อ ตามจุดที่ 1-4 ดังแสดงจุดที่ว่างในปัญหา ของ array ข้อที่ 1 ได้

10 Linked lists แก้ปัญหา Array แก้ปัญหาที่ 2 เนื่องจาก linked list จะขอ เนื้อที่ครั้งละ 1 ค่า และขอเมื่อต้องการใช้ ดังนั้นจะไม่มีการสูญเสียเนื้อที่ใน memory ไปฟรี ๆ นั่นคือ ใช้เนื้อที่ตามจริง ต้องการ แค่ไหนใช้เนื้อที่ไปแค่นั้น แก้ปัญหาข้อที่ 3 เนื่องจาก linked list จะขอเนื้อที่ไปได้เรื่อย ๆ ดังนั้นเมื่อมีข้อมูล เพิ่มก็สามารถขอเนื้อที่ได้อีกนั่นคือ ขอได้ ไปเรื่อยๆ ไม่มีข้อจำกัด จนกว่า เนื้อที่ใน memory จะเต็ม ( ไม่ว่าง )

11 ประเภทและ Operation ของ Linked lists ประเภทของ linked lists linked lists แบ่งเป็น 2 ประเภท คือ 1. Singly linked lists ( list ที่มี linked เดียว )Singly linked lists 2. Doubly linked list ( list ที่มี 2 linked )Doubly linked list Operation ของ linked lists Operation ของ linked lists มี 2 อย่าง คือ 1. Insert ( เพิ่มข้อมูลใน list) มี 2 ลักษณะ คือ - การเพิ่ม node ต่อท้าย list ( Append ) - การ เพิ่มโดยการแทรกระหว่าง node ( Insert ) 2. Delete ( ลบข้อมูลออกจาก list)


ดาวน์โหลด ppt Linked List ( ลิงค์ลิสต์ ). Linked List เนื่องจากการจัดเก็บข้อมูลแบบ Array จะต้องจองเนื้อที่ ทั้งหมดที่จะใช้ไว้ก่อน เช่น ต้องการจัดเก็บข้อมูลจำนวน 1,000.

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


Ads by Google