สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
คณิตคิดเร็วโดยใช้นิ้วมือ
Advertisements

โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
ที่ โรงเรียน เฉลี่ย 1 บ้านหนองหว้า บ้านสะเดาหวาน
แบบรูปและความสัมพันธ์
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
พลังงานในกระบวนการทางความร้อน : กฎข้อที่หนึ่งของอุณหพลศาสตร์
การซ้อนทับกัน และคลื่นนิ่ง
เปรียบเทียบจำนวนประชากรทั้งหมดจากฐาน DBPop Original กับจำนวนประชากรทั้งหมดที่จังหวัดถือเป็นเป้าหมาย จำนวน (คน) 98.08% % จังหวัด.
แนวทางการยกระดับผลสัมฤทธิ์ทางการเรียน ผลการทดสอบระดับชาติ (o – net) ปีการศึกษา 2554 โรงเรียนสรวงสุทธาวิทยา สำนักงานเขตพื้นที่การศึกษามัธยมศึกษา เขต.
AVL Tree.
การสืบค้นข้อมูลจาก Web OPAC
จำนวนนับใดๆ ที่หารจำนวนนับที่กำหนดให้ได้ลงตัว เรียกว่า ตัวประกอบของจำนวนนับ จำนวนนับ สามารถเรียกอีกอย่างว่า จำนวนเต็มบวก หรือจำนวนธรรมชาติ ซึ่งเราสามารถนำจำนวนนับเหล่านี้มา.
Valent Bond Theory (VBT) ครูวิชาการสาขาเคมี โรงเรียนมหิดลวิทยานุสรณ์
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
เป้าเบิกจ่าย งบรวม เป้าเบิกจ่าย งบลงทุน งบรวม เบิกจ่าย.
กระบวนการคิดทางคณิตศาสตร์
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
จำนวนทั้งหมด ( Whole Numbers )
เรื่อง ความรู้เกี่ยวกับการจัดเก็บภาษีสุรา
วิทยาการคอมพิวเตอร์ 1 เรื่องคัดเฉพาะทาง
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
รายงานในระบบบัญชีแยกประเภททั่วไป (GL – General Ledger)
ระบบการเบิก-จ่าย ลูกหนี้เงินยืม
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
ข้อมูลเศรษฐกิจการค้า
1 การสัมมนาผู้ตรวจ ประเมินคุณภาพภายใน ปีการศึกษา 2552 วันพฤหัสบดีที่ 21 ตุลาคม 2553 ณ ห้องประชุม 3222 อาคารสิริคุณากร.
สำนักวิชาการและแผนงาน
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 31 พฤษภาคม 2555.
ความก้าวหน้าระดับความสำเร็จ การปฏิบัติราชการของปฏิรูปที่ดิน จังหวัด 5 ครั้ง ณ 15 มิถุนายน 2555.
ข้อ 1 โจทย์ ชาย อายุ 59 ปี มีไข้ ตรวจชีพจร และฟังได้หัวใจเต้นไม่ส่ำเสมอ ทำ ECG ดังแสดง จงอ่าน ECG นี้โดยละเอียด.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
การดำเนินการทดสอบทางการศึกษาแห่งชาติ (O-NET)
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชาคณิตศาสตร์ ชั้นประถมศึกษาปีที่6
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
ความคิดเห็นของประชาชนเกี่ยวกับเกมออนไลน์ ในเขตกรุงเทพมหานคร
ค21201 คณิตศาสตร์เพิ่มเติม 1
F M B N สมบัติของจำนวนนับ ตัวคูณร่วมน้อย (ค.ร.น.).
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
สรุปผลสัมฤทธิ์ปีการศึกษา 2552 ชั้ น จำนว นสาระการเรียนรู้ นักเรี ยนทค ค. เพิ่มวสพ.พ. ศ.ศ. ดน ตรีง.ง. คอ ม. อ อ. เพิ่ม ป.1ป
การลงข้อมูลแผนการสอน
วิวัฒน์ ชินนาทศิริกุล
School of Information Communication Technology,
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ขั้นตอนการจัดนักศึกษาเข้าสังกัดสาขาวิชา
เพื่อการเข้าสู่ตำแหน่งทางวิชาการ รองศาสตราจารย์ ดร.พันธ์ ทองชุมนุม
School of Information Communication Technology,
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
กราฟเบื้องต้น.
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การค้นในปริภูมิสถานะ
กราฟเบื้องต้น.
Week 13 Basic Algorithm 2 (Searching)
ผลการประเมิน คุณภาพการศึกษาขั้นพื้นฐาน ปีการศึกษา
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
Tree 2.
Trees (2) University of Phayao Sanchai Yeewiyom
Data Structures and Algorithms 2/2561
4.4 AVL Trees AVL (Adelson-Velskii and Landis) tree เป็น binary search tree กำกับด้วยเงื่อนไขของการสมดุล และประกันว่า depth ของ tree จะเป็น O(log n) อย่างง่ายที่สุดคือกำหนดว่า.
ใบสำเนางานนำเสนอ:

สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์ Binary Search Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์

นิยามของโครงสร้างข้อมูล Binary Search Tree ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านซ้ายจะต้องมีค่าน้อยกว่า root ทุกโหนดที่อยู่ทางด้าน sub-tree ด้านขวา จะต้องมีค่ามากกว่าหรือเท่ากับ root แต่ละ sub-tree จะต้องมีคุณสมบัติตามข้อ 1 และ 2

ตัวอย่าง binary search tree 5 12 5 9 (a) 7 20 32 15 43 5 24 2 8 (c) (b) (d)

ตัวอย่าง binary tree ที่ไม่จัดว่าเป็น binary search tree 2 12 1 4 8 7 20 18 (a) 15 43 24 32 5 (b) (c)

การดำเนินการของ binary search tree Traversal ท่องไปใน binary search tree เหมือนกับการท่องใน binary tree คือ - Preorder - Inorder - Postorder Search ค้นหาโหนดที่ต้องการ Insert แทรกโหนด Delete ลบโหนด

Inorder Traversal Inorder-tree(x) If x != NULL then Inorder-tree(left of x) print x Inorder-tree(right of x)

Preorder Traversal Preorder-tree(x) If x != NULL then print x Preorder-tree(left of x) Preorder-tree(right of x)

Postorder Traversal Postorder-tree(x) If x != NULL then Postorder-tree(left of x) Postorder-tree(right of x) print x

การลบโหนดออกจาก Tree กรณีที่โหนดนั้นเป็น leaf สามารถลบออกได้เลย กรณีที่โหนดนั้นมี 1 child กรณีที่โหนดนั้นมี 2 children

การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 1 child 12 12 7 20 7 20 15 15 before after

การลบโหนดออกจาก Tree: กรณีที่โหนดนั้นมี 2 child 12 12 15 7 20 7 20 7 20 15 43 15 43 43 before after Replace the key of this node with the smallest key of right subtree.

แหล่งความรู้เพิ่มเติม Animated Binary Search Tree 1 http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html Animated Binary Search Tree 2 http://www.qmatica.com/DataStructures/Trees/BST.html

สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์ AVL Tree สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์

Balance Factor = |HL – HR|  1 นิยามของ AVL Tree Tree นั้นจะต้องเป็น binary search tree Tree นั้นจะต้องเป็น Balanced tree Balanced tree หมายถึง ทุกโหนดใน tree ต้องมีความสูงของ left sub-tree และ right sub-tree ต่างกันไม่เกิน 1 Balance Factor = |HL – HR|  1

ตัวอย่างการตรวจสอบ AVL Tree Node5 HL = 0, HR = 0  BF = |0 - 0| = 0 Node15 HL = 1, HR = 0  BF = |1 - 0| = 1 Node43 HL = 0, HR = 0  BF = |0 - 0| = 0 Node20 HL = 2, HR = 1  BF = |2 - 1| = 1 Node7 HL = 0, HR = 0  BF = |0 - 0| = 0 Node12 HL = 1, HR = 3  BF = |1 - 3| = 2 2 12 1 7 20 1 15 43 เกิด Imbalance ที่โหนด 12 ดังนั้น tree นี้ไม่เป็น AVL Tree 5

พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่ 1 1 11 3 24 18 34 13 86 เป็น AVL Tree

พิจารณาว่า Tree ต่อไปนี้เป็น AVL Tree หรือไม่ 1 2 8 25 14 43 32 56 29 74 3 81 41 72 เกิด Imbalance ที่โหนด 14 และ 56 ดังนั้น ไม่เป็น AVL Tree

Unbalanced Tree Left of Left Right of Right Right of Left Left of Right

Left of Left เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งซ้ายของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 3 7 3 7 2 2

Right of Right เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางขวา เกิด Imbalance 11 11 5 24 5 24 15 45 15 45 82 82

Right of Left เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 3 10 3 10 6 6

Left of Right เกิดเมื่อมีการแทรกโหนดเข้าไปด้าน sub-tree ฝั่งขวาของโหนดลูกทางซ้าย เกิด Imbalance 11 11 5 24 5 24 15 45 15 45 18 18

การทำ Balancing Tree Single rotation Double rotation การหมุน 1 ครั้ง ใช้กรณีเกิด Left of Left และ Right of Right Double rotation การหมุน 2 ครั้ง ใช้กรณีเกิด Right of Left และ Left of Right

Single rotation : rotate right เกิด Imbalance C A A B B C

28 ตัวอย่าง 10 56 2 12 49 24 11 30 5 28 11 49 10 5 24 2 12 30 56

ตัวอย่าง Rotate Right 11 5 5 24 3 11 3 7 2 7 24 2

Single rotation : rotate left C A B เกิด Imbalance A B C

13 ตัวอย่าง 5 20 2 7 26 4 12 38 20 13 12 26 5 4 20 2 7 20 38

ตัวอย่าง 11 5 24 11 45 82 15 5 24 15 45 82

Double rotation : left of right เกิด Imbalance N1 N2 N3 N1 N3 M M N O P N2 P N O

ตัวอย่าง 11 15 5 24 11 24 5 15 45 18 45 18

Double rotation : right of left Rotate Right เกิด Imbalance N3 N2 N1 N1 N3 P M N O P M N2 N O

ตัวอย่าง 11 10 5 24 5 11 3 10 3 6 24 6

ตัวอย่าง algorithm : rotate left

จงสร้าง AVL Tree จากข้อมูลที่นำเข้ามาตามลำดับดังต่อไปนี้ โดยให้แสดงผล Balance Factors ด้วย 23, 54, 34, 2, 14, 7, 26, 16, 87, 21, 9 5, 23, 57, 8, 12, 45, 21, 36, 28, 4, 22, 13, 27

แหล่งความรู้เพิ่มเติม Animated AVL Tree 1 http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html Animated AVL Tree 2 http://www.qmatica.com/DataStructures/Trees/AVL/AVLTree.swf