วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
Advertisements

อัตราส่วนของจำนวนหลายๆ จำนวน
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
ครั้งที่ 12 การค้นหาข้อมูล (Searching)
บทเรียนคอมพิวเตอร์ช่วยสอน การบวกจำนวนสองจำนวนที่มีผลบวกไม่เกิน 20
ต้นไม้และนิยามที่เกี่ยวข้อง
Chapter 1 โครงสร้างข้อมูลและอัลกอริธึมส์
Decision Tree.
AVL Tree.
คืออะไร? คือ queue ที่ access element ตามความสำคัญของตัว element นั้น
ทศนิยมและเศษส่วน F M B N โดย นางสาวสุพรรษา ธรรมสโรช.
ภาษา SQL (Structured Query Language)
Project Management.
การจำลองความคิด
Decision Tree Analysis
ขั้นตอนวิธี (Algorithm)
Introduction to Digital System
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
การจำแนกบรรทัดข้อความ
คณิตศาสตร์ แสนสนุก.
จำนวนทั้งหมด ( Whole Numbers )
การใช้งานเบื้องต้นของเครื่องคิดเลขทางการเงิน
วิทยาการคอมพิวเตอร์ 1 เรื่องคัดเฉพาะทาง
โครงสร้างข้อมูลแบบคิว
การจัดเรียงข้อมูล Sorting Internal Sorting External Sorting.
Charter 8 1 Chapter 8 การจัดการฐานข้อมูล Database Management.
จำนวนเต็มกับการหารลงตัว
การแปลงข้อมูลใน Excel เป็นฐานข้อมูลใน Access
กำลังไฟฟ้าที่สภาวะคงตัวของวงจรไฟฟ้ากระแสสลับ
วิธีสายงานวิกฤต Critical Path Method แบบ Activity on Arrow.
บทที่ 3 การวิเคราะห์ Analysis.
เรื่องการออกแบบฐานข้อมูล
Week 12 Engineering Problem 2
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
บทที่ 3 การทำงานกับฟอร์ม (Form)
ลิงค์ลิสต์ (Linked List)
วิชา วิศวกรรมซอฟต์แวร์ (Software Engineering)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
Classification Data mining การทำเหมืองข้อมูลแบบจำแนก
Symbol & Instance.
ตัวดำเนินการ และนิพจน์คณิตศาสตร์
ตัวประกอบ (Factor) 2 หาร 8 ลงตัว 3 หาร 8 ไม่ลงตัว 4 หาร 8 ลงตัว
บทที่ 8 การสร้างวัตถุเคลื่อนไหวโดย Bone Tool
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
โครงสร้างข้อมูลแบบรายการโยง (Link List)
วิวัฒน์ ชินนาทศิริกุล
การเรียงข้อมูล 1. Bubble Sort 2. Insertion Sort 3. Heap Sort
School of Information Communication Technology,
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
บทที่ 9 ไทร์ (Tries).
School of Information Communication Technology,
คณิตศาสตร์ (ค33101) ชั้นมัธยมศึกษาปีที่ 3 สอนโดย ครูปพิชญา คนยืน.
adversarial Search Techniques
แบบฝึกหัด จงหาคำตอบที่ดีที่สุด หรือหาค่ากำไรสูงสุด จาก
Recursive Method.
โครงสร้างข้อมูลแบบลิงก์ลิสต์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การจำแนกข้อมูล(Classification) CART-Classification and regression Tree
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
แบบ Star จะเป็นลักษณะของการต่อ เครือข่ายที่ Work station แต่ละตัวต่อรวมเข้าสู่ ศูนย์กลางสวิตซ์ เพื่อสลับตำแหน่งของเส้นทาง ของข้อมูลใด ๆ ในระบบ ดังนั้นใน.
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
โครงสร้างข้อมูล (Data Structures ) รหัสวิชา การเรียงลำดับข้อมูลแบบ (Heap Sort)
ใบสำเนางานนำเสนอ:

วิชา COSC2202 โครงสร้างข้อมูล (Data Structure) โครงสร้างข้อมูลแบบ Tree (ต่อ)

โครงสร้างข้อมูลแบบ Tree ต้นไม้แบบฮีป (Heap Tree) เป็นการจัดโครงสร้างข้อมูลแบบต้นไม้ไบนารีเกือบสมบูรณ์แบบหนึ่ง โดยที่ ต้นไม้ไบนารีเกือบสมบูรณ์แบบนี้ มีข้อกำหนดว่า ค่าที่บรรจุอยู่ภายในโหนด ใดๆ ที่เป็นโหนดพ่อจะต้องมีค่าสูงกว่าหรือเท่ากับโหนดลูกทั้งสองของมัน (Max Heap Tree)

ต้นไม้แบบฮีป (Heap Tree) ตัวอย่างต้นไม้แบบฮีป

ต้นไม้แบบฮีป (Heap Tree) ตัวอย่าง ที่ไม่ถูกต้อง

ต้นไม้แบบฮีป (Heap Tree) Reheap Up สลับ Node กับ Parent จนกว่าจะถูก ตำแหน่ง

ต้นไม้แบบฮีป (Heap Tree) Reheap Down สลับ Node กับ Child ที่มีค่า มากกว่า

ต้นไม้แบบฮีป (Heap Tree) การใส่ข้อมูลเข้าไปในฮีปมีขั้นตอนดังนี้        1.    ใส่ข้อมูลเข้าไปที่โหนดสุดท้ายของฮีป 2. ถ้าข้อมูลที่ใส่เข้าไปนั้นทำให้ได้เป็นต้นไม้ฮีปการใส่ก็เสร็จสิ้น 3. ถ้าต้นไม้ที่ได้ไม่เป็นต้นไม้ฮีป ให้ทำการปรับต้นไม้ที่ได้ให้เป็นฮีป โดยการเปรียบเทียบค่าที่ใส่เข้ามาใหม่กับโหนดพ่อของมัน ถ้าโหนดที่ใส่เข้าไป มีค่ามากกว่าให้สลับที่ ทำเรื่อยๆจนกระทั่งปรับสิ้นสุด                     

ต้นไม้แบบฮีป (Heap Tree) เติมค่า 10 เข้าไปในต้นไม้ฮีป 9 8 5 7 6 10

ต้นไม้แบบฮีป (Heap Tree) 8 5 9 10 8 5 9 10 8 5 9 10 8 5 9 10

ต้นไม้แบบฮีป (Heap Tree) ฮีปใหม่ที่ได้ 9 7 8 6 5 10

ต้นไม้แบบฮีป (Heap Tree) ลบค่า 10 ออกจากฮีป 10 9 6 7 8 2 5 1 4 3

ต้นไม้แบบฮีป (Heap Tree) 9 9 9 9 8 8 8 8 3 3 3 3

ต้นไม้แบบฮีป (Heap Tree) ฮีปใหม่ที่ได้ 9 8 6 7 3 2 5 1 4

โครงสร้างข้อมูลแบบ Tree ต้นไม้เอวีแอล (AVL Tree) เป็นไบนารีเซิร์ซเทรีแบบต้นไม้ไบนารีสมดุล : ถ้า T คือต้นไม้ใดๆ และ N คือโหนดใดๆ บนต้นไม้ T แล้ว ความแตกต่าง ระหว่างความสูงของต้นไม้ยอ่ย (Sub Tree) ที่อยู่ทางขวา และทางซ้าย ของ N จะถูกเรียกว่า บาลานซ์แฟคเตอร์ (Balance Factor) และต้นไม้ T จะถูก เรียกว่าต้นไม้สมดุล เมื่อบาลานซ์แฟคเตอร์ของ N ใดๆ ต้องมีค่าไม่เกิน |1| (ต้องมีค่าเป็น -1 หรือ 0 หรือ 1)

ต้นไม้เอวีแอล (AVL Tree) Non-AVL 1 2 3 AVL น้ำหนักความสูงของ node = ความสูง Subtree(ซ้าย) - ความสูง Subtree(ขวา)

ต้นไม้เอวีแอล (AVL Tree) AVL TREE เมื่อมี Tree ที่ไม่สมดุลจะเกิดการหมุนเพื่อให้สมดุลซึ่งมี 4 วิธี 1. การหมุนซ้าย : โหนดทางขวามากกว่าซ้าย ยกโหนดที่อยู่ขวาขึ้นมา 2. การหมุนขวา : โหนดทางซ้ายมากกว่าขวา ยกโหนดที่อยู่ซ้ายขึ้นมา 3. การหมุนขวาไปซ้าย : หมุนขวาก่อน แล้วค่อยหมุนซ้าย 4. การหมุนซ้ายไปขวา : หมุนซ้ายก่อน แล้วค่อยหมุนขวา

ต้นไม้เอวีแอล (AVL Tree) - การหมุนซ้าย -2 7 5 -1 7 5 8 ไม่สมดุล 8 สมดุล

ต้นไม้เอวีแอล (AVL Tree) - การหมุนขวา

ต้นไม้เอวีแอล (AVL Tree) - การหมุนขวาไปซ้าย หมุนขวาครั้งแรก หมุนซ้ายครั้งที่ 2

ต้นไม้เอวีแอล (AVL Tree) - การหมุนซ้ายไปขวา หมุนซ้ายครั้งแรก หมุนขวาครั้งที่ 2

การใส่โหนดใหม่เข้าไปใน AVL Tree ถ้า node เข้าไปใหม่ทำให้ Tree เสียสมดุล ทำให้สมดุลได้โดยการหมุน ตัวอย่าง ใส่ node 5,7,10,15,19,20

การใส่โหนดใหม่เข้าไปใน AVL Tree ใส่ node 5,7,10,15,19,20

การใส่โหนดใหม่เข้าไปใน AVL Tree ใส่ node 5,7,10,15,19,20

การลบ node ใน AVL TREE ถ้าลบโหนดออกไปแล้วเกิดเสียสมดุล ก็ทำให้ต้นไม้สมดุล โดยการหมุน เมื่อลบ node 4 เมื่อลบ node 2

การลบ node ใน AVL TREE เมื่อไม่สมดุล ก็หมุนให้สมดุล จะได้เป็น