Burin Rujjanapan Updated:

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Advertisements

ค คณิตศาสตร์สำหรับ คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม คุณสมบัติของต้นไม้ และต้นไม้ทวิภาค.
ข้อสรุปหลักสูตรการอบรมการผลิต รายการเด็ก TV4Kids.
ชื่อผู้สอน : นางฐิติมา พิริยะ
Entity-Relationship Model E-R Model
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
สมาชิกกลุ่ม นายจตุพร ร้องเสียง เลขที่ 5 นายณัฐวัฒน์ เทพวรรณ์ เลขที่ 8
โครงสร้างข้อมูล (Data Structures ) รหัสวิชา การเรียงลำดับข้อมูลแบบ (Heap Sort)
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
หน่วยที่ 5 การเวียนเกิด
DATA STRUCTURE AND ALGORITHM Linked List.
หน่วยที่ 6 แถวลำดับ (Array)
ประเภทโครงงาน พัฒนาระบบ (System Development)
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
Microsof t Office Word เตรียมความ พร้อม Microsoft Office Word 2007 แดงเขียวน้ำเงิน ม่วงดำเขียว เหลืองส้มน้ำตาล น้ำเงินดำแดง.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน เรื่อง หลักการทำงานของคอมพิวเตอร์ วิชาคอมพิวเตอร์พื้นฐาน สำหรับนักเรียนชั้นมัธยมศึกษาปีที่ 1 โรงเรียนเฉลิมราชประชาอุทิศ.
เทคนิคการใช้ Microsoft Excel. 1. การตีตารางในรูปแบบต่าง ๆ 2. การแทรกภาพในตาราง 3. การตกแต่งข้อมูลด้วย Format Cells 4. การคำนวณ บวก ลบ คูณ หาร 5. การย่อ.
๕ เรื่องเด่นในร่างรัฐธรรมนูญ
วิชาเทคโนโลยีสารสนเทศเพื่อชีวิต
ง21101 การงานอาชีพและเทคโนโลยี ม. 1 เจตคติต่อการประกอบอาชีพ
ระบบมาตรฐานการพัฒนาชุมชน ผอ.กลุ่มงานมาตรฐานการพัฒนาชุมชน
ระบบตัวแทนจำหน่าย/ ตัวแทนขายอิสระ
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
IP-Addressing and Subneting
Number system (Review)
IP-Addressing and Subneting
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
Trees (2) University of Phayao Sanchai Yeewiyom
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
แนวทางการออกแบบโปสเตอร์
การเสริมไวตามิน อี ในสูตรอาหารสุกร
กลุ่มคำและประโยค ภาษาไทย ม. ๓
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
เรื่อง ความพึงพอใจต่อการให้บริการห้องสมุด
หลักการแต่ง คำประพันธ์ประเภท โคลง. หลักการแต่ง คำประพันธ์ประเภท โคลง.
ความรู้พื้นฐานเกี่ยวกับสุรา
ผลการดำเนินงาน การบริหารจัดการประเมิน และดูแลผู้ป่วยก่อนกลับเข้าทำงาน
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
ต้นไม้เอวีแอล (AVL Tree)
บริษัท พัฒนาวิชาการ (2535) จำกัด
สมการพหุนาม ที่มีความซับซ้อนมากขึ้น
บทที่7 ทฤษฎีกราฟเบื้องต้น
วัฏจักรหิน วัฏจักรหิน : วัดวาอาราม หินงามบ้านเรา
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
Data Structures and Algorithms 2/2561
Tree.
การอนุรักษ์และสงวนรักษาทรัพยากรสารสนเทศ
2 โครงสร้างข้อมูลแบบสแตก (STACK).
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
เริ่มต้นสร้างบล็อกเวิร์ดเพรส
Data Structure and Algorithms
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
ทายสิอะไรเอ่ย ? กลม เขียวเปรี้ยว เฉลย ทายสิอะไรเอ่ย ? ขาว มันจืด เฉลย.
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
MTRD 427 Radiation rotection - RSO
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
ประกาศในราชกิจจานุเบกษา วันที่ 14 พฤษภาคม 2562
เครื่องขุดหลุมปลูกยาสูบ
ใบสำเนางานนำเสนอ:

Burin Rujjanapan Updated: 591110 Binary Search Tree (BST) sometimes called ordered or sorted binary trees Burin Rujjanapan Updated: 591110 6 4 8 5 3 9 7

BST Meaning นิยามโครงสร้างต้นไม้ (Tree) เป็น โครงสร้างชนิด ไม่เชิงเส้น (Non-linear) มีลักษณะ เป็นรีเคอร์ซีฟ (Recursive) ทุกทรีจะมีรูทโหนด (Root Node) โดยสมาชิกของ รูทโหนดจะเรียกว่าสับทรี (Subtree) ซึ่งมีการรวมกลุ่มกันอย่างมี ความสัมพันธ์ที่ไม่ซ้ำซ้อน อาจอยู่ใน รูปของเซต (Set) และแบ่งทรีออกได้ เป็นหลายระดับ (Level) ไบนารีเสิร์ททรี (Binary Search Tree) คือ ทรีที่ค่าของโหนดรากมี ค่ามากกว่าค่าของทุกโหนดในทรีย่อย ทางซ้าย และมีค่าน้อยกว่าหรือ เท่ากับค่าของทุกโหนดในทรีย่อย ทางขวา และในแต่ละทรีย่อยก็มี คุณสมบัติเช่นเดียวกัน 6 4 8 5 3 9 7

ตัวอย่าง : ทรีในชีวิตประจำวัน (Tree in Daily Life)

Tree หลัง ม.3 มีทางเลือกเยอะเลย ไม่เรียน ม.ต้น นักเรียน ม.ต้น สายสามัญ ต่อ ม.6 สายอาชีพ ปวช. ปวส. ทำงาน ฝากเลี้ยง ในเมือง นอกเมือง สายสามัญ สายอาชีพ สายวิทย์ สายสังคม สายช่าง สายอื่น วิทย์สุขฯ วิทย์เทคโน สังคมล้วน สังคม ไม่ล้วน ต่อ อุดมฯ ทำงาน ต่อ อุดมฯ ทำงาน หลัง ม.3 มีทางเลือกเยอะเลย สรุปว่าจะเลือก ปีนต้นไม้ ดำน้ำ เดินดิน หรือบิน นักเรียน คือ ผู้เลือก และเป็นมานานแล้ว ท้ายที่สุด ทุกระบบมีเป้าหมายสำหรับผู้เลือกแต่ละคน https://www.youtube.com/watch?v=dqTTojTija8 http://www.khanacademy.org http://www.montessori.org

Binary Tree กับ Array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Binary Tree ฝากเลี้ยง ในเมือง นอกเมือง 1 2 3 4 5 6 สายสามัญ สายอาชีพ N = left(1) = 3 Function N = right(1) = 4 N = parent(4) = 1.5 = 1 1 2 3 4 5 6 ฝากเลี้ยง ในเมือง นอกเมือง สายสามัญ สายอาชีพ http://opendatastructures.org/versions/edition-0.1d/ods-java/node52.html

AVL (Adelson-Velskii, และ Landis) คือ Tree ที่ |HL – HR| <= 1 AVL with balanced tree 6 2 8 4 1 9 7 6 2 8 4 1 9 7 6 2 8 4 1 9 7 HR=2 HL=4 AVL (Adelson-Velskii, และ Landis) คือ Tree ที่ |HL – HR| <= 1

รู้จักกับทรี (Tree) ต.ย. ทรี (Tree) 7 โหนด (Node) ไบนารีทรีสมดุล (Balanced Tree) 1. โหนดราก (Root Node) : 6 2. โหนดพ่อ (Parents Node) : 6, 2, 8 (โหนดที่มีลูก) 3. โหนดลูก (Children Node) : 2, 8, 1, 4, 7, 9 (โหนดที่มีพ่อ) 4. โหนดพี่น้อง (Sibling Node) : {2, 8}, {1, 4}, {7, 9} (เซตของโหนดลูก) 5. โหนดใบ (Leaf Node) : 1, 4, 7, 9 (โหนดที่ไม่มีลูก = External node) 6. ดีกรีทั้งหมดของทรี (Degree) : 6 (โหนดที่ไม่ใช่ Root node) 7. โหนดภายใน (Internal Node) : 2, 8 (โหนดที่ไม่ใช่ root และ leaf) 8. ระดับความสูง/ความลึกของทรี (Height) : 3 9. เขียนในวงเล็บ : 6 ( 2 ( 1 4 ) 8 ( 7 9 ) ) 6 2 8 1 4 7 9

Expression Trees * Expression คือ การรวมกันของ values + variables + operators เคล็ดวิชาเดินลัด นิ้วมือ in แปลว่า ใน post แปลว่า หลัง pre แปลว่า หน้า + + 1 3 2 โจทย์ (A + B) * (C + D) การท่องไปใน Expression Tree 3 แบบ แบบ infix (left root right) A + B * C + D แบบ postfix (left right root) A B + C D + * แบบ prefix (root left right) * + A B + C D A B C D [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.224

Expression Trees + Expression คือ การรวมกันของ values + variables + operators เคล็ดวิชาเดินลัด นิ้วมือ in แปลว่า ใน post แปลว่า หลัง pre แปลว่า หน้า * D 2 1 3 A + โจทย์ A * (B + C) + D การท่องไปใน Expression Tree 3 แบบ แบบ infix (left root right) A * B + C + D แบบ postfix (left right root) A B C + * D + แบบ prefix (root left right) + * A + B C D B C [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.224

Expression Trees + Expression คือ การรวมกันของ values + variables + operators เคล็ดวิชาเดินลัด นิ้วมือ in แปลว่า ใน post แปลว่า หลัง pre แปลว่า หน้า * - + E B 1 4 2 3 A โจทย์ (A * B) + ((C + D) – E) การท่องไปใน Expression Tree 3 แบบ แบบ infix (left root right) A * B + C + D – E แบบ postfix (left right root) A B * C D + E - + แบบ prefix (root left right) + * A B - + C D E C D [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.224

การเพิ่มโหนด 5 ใน BST ซึ่ง 5 ต้องอยู่ใน subtree ด้านซ้าย เนื่องจากน้อยกว่า root node 6 2 8 1 4 7 9 5 หลังการเพิ่มโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การเพิ่มโหนด 3 ใน BST ซึ่ง 3 ต้องอยู่ใน subtree ด้านซ้าย ของ 4 เนื่องจากมากกว่า 2 ที่เป็น parent node ของ 4 6 2 8 1 4 7 9 3 5 หลังการเพิ่มโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การเพิ่มโหนด 0 ใน BST 6 2 8 1 4 7 9 3 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 1 ใน BST หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST 6 2 8 1 4 7 9 3 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 1 ใน BST หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST 6 2 8 1 4 7 9 3 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 4 ใน BST หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST 6 2 8 4 7 9 3 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 4 ใน BST เหตุที่ 3 ขึ้นมาแทน 4 หรือ 5 ขึ้นมาแทน 4 ก็ไม่แตกต่างกัน แต่ต้องกำหนดตำแหน่งของ child ว่าจะอยู่ซ้ายหรือขวา 6 2 8 4 3 7 9 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 2 ใน BST node 0 หรือ 3 จะขึ้นไปแทน 2 ก็ได้ แต่ควรเป็น 3 เพราะจะทำให้ทรีเป็น Balanced Tree หาก 0 ขึ้นไปก็จะเป็น [HL – HR] = 1 หาก 3 ขึ้นไปก็จะเป็น [HL – HR] = 0 6 2 8 3 7 9 5 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การลบโหนด 2 ใน BST หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST 6 2 3 8 5 7 9 หลังการลบโหนดใหม่ ต้องไม่ทำให้เสีย คุณสมบัติของ BST

การปรับทรีให้สมดุล (Balancing Trees) – Left of Left LH = ซ้ายสูง Left High, RH = ขวาสูง Right High, EH = สูงเท่ากัน Even High 8 6 9 2 1 7 LH 6 2 8 1 9 7 LH EH EH LH EH LH EH EH EH EH EH [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.242

การปรับทรีให้สมดุล (Balancing Trees) – Left of Left 6 6 2 8 1 9 7 RH 2 9 EH LH 8 3 3 1 LH EH EH 7 EH [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.242

การปรับทรีให้สมดุล (Balancing Trees) – Left of Left 7 LH 3 8 3 LH EH EH 2 7 2 4 LH EH EH LH 1 1 4 8 EH EH EH EH [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.241

การปรับทรีให้สมดุล (Balancing Trees) – Left of Left โจทย์ชวนคิด 5 3 6 2 1 4 8 6 9 2 1 7 6 2 9 1 7 8 3 [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.242

การปรับทรีให้สมดุล (Balancing Trees) – Right to Right LH = ซ้ายสูง Left High, RH = ขวาสูง Right High, EH = สูงเท่ากัน Even High 4 2 5 6 7 EH RH 5 EH 4 6 LH RH 2 7 EH EH [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.242

การปรับทรีให้สมดุล (Balancing Trees) – Right to Left คำถามชวนคิด ทำไมต้องกลับเลข 3 จากนั้นทำไมต้องกลับเลข 5 แล้วทรีสุดท้ายสมดุลเพราะอะไร 1 3 4 5 2 7 8 9 RH EH LH 6 1 3 4 5 2 7 8 9 LH EH RH 6 5 EH 3 7 LH RH 2 4 6 8 LH EH EH RH 1 9 EH EH [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.245

การปรับทรีให้สมดุล (Balancing Trees) – Right to Left โจทย์ชวนคิด ว่าจะปรับทรีให้สมดุลต้องทำอย่างไร 2 3 5 1 7 8 9 6 1 3 4 5 2 8 9 10 6 [3] โอภาส เอี่ยมสิริวงศ์, "โครงสร้างข้อมูล (Data Structures) เพื่อการออกแบบโปรแกรมคอมพิวเตอร์", บริษัท ซีเอ็ดยูเคชั่น จำกัด., กรุงเทพฯ, 2549. P.245

Traversal การท่องไปใน Binary Search Tree มี 3 แบบ Pre-order = Root Left Right F B A D C E G I H เช่น +AB In-order = Left Root Right A B C D E F G H I เช่น A+B Post-order = Left Right Root A C E D B H I G F เช่น AB+ + - * b a d c + A B https://en.wikipedia.org/wiki/Tree_traversal

Traversal การท่องไปใน Binary Search Tree มี 3 แบบ Pre-order = Root Left Right ตอบ + - a b * c d ตอบ +AB In-order = Left Root Right ตอบ (a – b) + (c * d) ตอบ A+B Post-order = Left Right Root ตอบ a b – c d * + ตอบ AB+ + - * b a d c + A B

Traversal การท่องไปใน Binary Search Tree มี 3 แบบ Pre-order = Root Left Right ตอบ … In-order = Left Root Right ตอบ … Post-order = Left Right Root ตอบ … + - * a d e + b c