School of Information Communication Technology,

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
สาขาวิชาคอมพิวเตอร์และเทคโนโลยี อ.เลาขวัญ งามประสิทธิ์
การซ้อนทับกัน และคลื่นนิ่ง
Chapter 2 Root of Nonlinear Functions
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 6 The Fast.
ต้นไม้และนิยามที่เกี่ยวข้อง
การเรียงลำดับและการค้นหาแบบง่าย
จำนวนเต็ม จำนวนเต็ม  ประกอบด้วย                   1. จำนวนเต็มบวก    ได้แก่  1 , 2 , 3 , 4, 5 , ....                   2.  จำนวนเต็มลบ      ได้แก่  -1.
AVL Tree.
EEET0770 Digital Filter Design Centre of Electronic Systems and Digital Signal Processing การออกแบบตัวกรองดิจิตอล Digital Filters Design Chapter 3 Digital.
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
Use Case Diagram.
กลุ่มสาระการเรียนรู้ คณิตศาสตร์ โรงเรียนบ้านหนองกุง อำเภอนาเชือก
กระบวนการคิดทางคณิตศาสตร์
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
จำนวนทั้งหมด ( Whole Numbers )
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
ระบบการเบิก-จ่าย ลูกหนี้เงินยืม
ทำการตั้งเบิกเพิ่ม แบบฟอร์ม GFMIS.ขบ.02 เพื่อชดใช้ใบสำคัญ
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
โครงสร้างข้อมูลแบบคิว
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
คุณสมบัติการหารลงตัว
ณัฏฐวุฒิ เอี่ยมอินทร์
สัปดาห์ที่ 7 การแปลงลาปลาซ The Laplace Transform.
สัปดาห์ที่ 15 โครงข่ายสองพอร์ท Two-Port Networks (Part I)
บทที่ 3 การวิเคราะห์ Analysis.
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
การแจกแจงปกติ.
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
ค21201 คณิตศาสตร์เพิ่มเติม 1
WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 4 analysis of algorithm efficiency.
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
วิวัฒน์ ชินนาทศิริกุล
Shortest-Path Algorithms
School of Information Communication Technology,
ต้นไม้ Tree (2) ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Chapter 3 - Stack, - Queue,- Infix Prefix Postfix
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
Midterm outline Object-oriented programming Wattanapong suttapak, Software Engineering, school of Information communication Technology, university of phayao.
Sequence Diagram Communication Diagram
Activity Diagram Wattanapong suttapak, Software Engineering,
แบบฝึกหัด จงหาคำตอบที่ดีที่สุด หรือหาค่ากำไรสูงสุด จาก
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
การค้นในปริภูมิสถานะ
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
กราฟเบื้องต้น.
การจัดเรียงข้อมูล (sorting)
โครงสร้างข้อมูลแบบ สแตก (stack)
ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 9 Heap and Hash 1.
การค้นในปริภูมิสถานะ
กราฟเบื้องต้น.
Week 13 Basic Algorithm 2 (Searching)
การแบ่งแยกและเอาชนะ Divide & Conquer
ต้นไม้ Tree [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
ค32213 คณิตศาสตร์สำหรับคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ใบสำเนางานนำเสนอ:

School of Information Communication Technology, Chapter 5 Tree Part 1 WATTANAPONG SUTTAPAK Software Engineering, School of Information Communication Technology, University of PHAYAO

จุดประสงค์ บทเรียนที่ 5 มีความรู้ความเข้าใจเรื่องทรี สามารถจำแนกประเภทต่างๆ ของทรีได้ มีความรู้ความเข้าใจในเรื่องไบนารี่ทรี สามารถเพิ่ม ลบ ค้นหา ไบนารี่ทรีได้ สามารถประยุกต์การเขียนโปรแกรมแบบไบนารีทรีได้

Tree ชื่อภาษไทยแผนภาพต้นไม้ หมายถึงลักษณะโครงสร้างข้อมูลที่มีลักษณะไม่เป็นเชิงเส้น(non-linear) โดยโครงสร้างคล้ายต้นไม้ A B C D E F G H I J K L M

Tree Terminology โหนด(node) คือข้อมูลในแต่ละจุด เช่น (A) (B) (C) (D) … (M) รูท(root) หมายถึงโหนดบนสุด (A) ทรีย่อย(subtree) หมายถึง โหนดลูกทั้งหมด กิ่ง(edge/branch) หมายถึงเส้นเชื่อมระหว่างโหนด โหนดพ่อ(parent node) และโหนดลูก(child node) หมายถึงโหนดที่ให้มีกิ่งเชื่อมกันโดยโหนดพ่ออยู่ด้านบนโหนดลูก เช่น parent(A) ของ child(B) child(C) child(D) และ parent(B) ของ child(F) ใบ(leave , leave node) หมายถึงโหนดที่ไม่มีลูก (F) (G) (L) โหนดกิ่ง(edge node, branch node) เป็นโหนดที่มีลูก (B) (D) โหนดพี่น้อง(sibling node) หมายถึงโหนดที่มีโหนดพ่อเดียวกัน (L) กับ (M) หรือ (C) กับ (D)

Tree Terminology degree หมายถึงจำนวนลูกของโหนด เช่น (A) มี 4 หรือ (D) มี 2 ancestor node หมายถึงโหนดที่มาก่อนโหนดอื่นๆ เช่น (A) เป็น ancestor (B) (C) (D) หรือ (D) เป็น ancestor (E) (L) direct ancestor node หมายถึงโหนดที่มาก่อนโหนดอื่นๆ 1 โหนด เช่น (A) กับ (B) หรือ (D) กับ (E) decendant node หมายถึงโหนดที่มาหลังโหนดอื่นๆ เช่น (D) เป็น decendant ของ (A) (B) (C) direct decendant node หมายถึงโหนดที่ตามหลังโหนดอื่นๆ 1 โหนด เช่น (D) กับ (C) level หมายถึงระดับของโหนดเช่น root เป็น 0 และ (B) (C) (D) (E) เป็น 1 height/depth หมายถึงระดับความสูงหรือความลึกของ root กับ node ล่างสุด จากตัวอย่างก่อนหน้า คือ 4 path หมายถึงเส้นทางเชื่อมต่อระหว่าง node เช่น (A),(B),(F) หรือ (A),(D),(H) หรือ (A),(D),(H),(L) length หมายถึงความยาวของ edge ในเส้นทาง เช่น (A) ถึง (M) เท่ากับ 3

Type of Tree ในที่นี้ขอกล่าวถึง 2 ประเภท Binary Tree Binary Search Tree AVL Tree B Tree(2-3-4 Tree)

Binary Tree Tree ใดๆ จะเป็น Binary Tree ก็ต่อเมื่อแต่ละโหนดมีโหนดลูกไม่เกิน 2 โหนด โดยแบ่งเป็นด้านซ้าย 1 โหนดหรือด้านขวา 1 โหนดหรือทั้งคู่หรือไม่มีเลย เช่น A A A A B C B C 1 2 3 4

Binary Tree A B D G H L M 5

Binary Search Tree 1 2 Tree ใดๆ จะเป็น Binary Search Tree ก็ต่อเมื่อ เป็น Binary Tree แต่ละโหนดต้องมีค่าไม่ซ้ำกัน โหนดด้านซ้ายมีค่าน้อยกว่าค่าด้านขวาเสมอ 4 4 2 2 6 6 1 3 5 8 5 8 7 9 1 2

Searching Binary Search Tree เช่น ต้องการค้นหา 8 4 2 6 1 3 5 8 7

Searching Binary Search Tree เริ่มจากเปรียบเทียบค่ากับ root โดย 8 มากกว่า 4 4 2 6 1 3 5 8 step 1

Searching Binary Search Tree เปรียบเทียบกับ 6 โดย 8 มากกว่า 6 4 2 6 1 3 5 8 step 2

Searching Binary Search Tree 4 2 6 1 3 5 8 step 3

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 step 1

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 2 step 2

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 2 8 step 3

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 2 8 1 step 4

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 2 8 1 4 step 5

Insertion Binary Search Tree เช่น ต้องการเพิ่มข้อมูล 6 2 8 1 4 3 6 2 8 1 4 3 step 6

Insertion Binary Search Tree ถ้าต้องการเพิ่มข้อมูล10 เข้ามาจะได้ 6 2 8 10 1 4 3 step 7

deletion Binary Search Tree ถ้าต้องการลบ 3 จะเห็นว่าไม่ใช่เรื่องยาก นั่นคือดึงออกได้เลย 6 2 8 10 1 4 3 step 1

deletion Binary Search Tree ลบ 3 6 2 8 10 1 4 step 2

deletion Binary Search Tree แต่ถ้าต้องการลบ 2 6 2 8 10 1 4 step 1

deletion Binary Search Tree ดึง 1 หรือ 4 เข้ามาแทนที่ 2 6 4 8 10 1 step 2

Algorithm Analysis in Binary Search Tree 6 level 1 = 20 level 2 = 21 2 8 level 3 = 22 1 4 7 10 ดังนั้นถ้ามี x level จะมีโหนดเท่ากับ 2x-1 + 2x-2+…+ 21+ 20 = 2x -1

Algorithm Analysis in Binary Search Tree ดังนั้นถ้ามี x level จะมีโหนดเท่ากับ 2x-1 + 2x-2+…+ 21+ 20 สมมติให้ n = 2x-1 + 2x-2+…+ 21+ 20 n+1 = 2x-1 + 2x-2+…+ 21+ 20 +1 n+1 = 2x-1 + 2x-2+…+ 21+ 21 n+1 = 2x-1 + 2x-2+…+ 22 n+1 = 2x-1 + 2x-2+ 2x-2 n+1 = 2x-1 + 2x-1 n = 2x – 1 แล้วจะคำนวณไปทำไม ?

Algorithm Analysis in Binary Search Tree รู้จักกับ Best Case ,Worst Case, Average case Best Case หมายถึงกรณีที่การทำงานใดๆ เร็วที่สุด Worst Case หมายถึงกรณีที่การทำงานใดๆ ช้าที่สุด Average Case หมายถึงกรณีที่การทำงานใดๆ เฉลี่ยเท่ากับ ตัวอย่าง ถ้าต้องการค้นหา 6 จะเห็นว่าใช้แค่ 1 ครั้งเท่านั้น นั่นคือ Best Case O(1) 6 2 8 1 4 7 10

Algorithm Analysis in Binary Search Tree Worst Case เช่นต้องการค้นหา 10 จะเห็นว่าใช้เวลาถึง 3 ครั้ง 6 2 8 1 4 7 10

Algorithm Analysis in Binary Search Tree 6 12 7 8 Worst Case สำหรับการค้นหา 11 คือ 7 หรือ n เท่ากับจำนวนโหนดทั้งหมด 9 10 11

Algorithm Analysis in Binary Search Tree Average Case สมมติให้ง่ายต่อการคิดโดยโหนดเต็ม เช่น 3 level มี 7 โหนด ในที่นี้จะมองไปที่เวลาที่เยอะที่สุดในการค้นหาซึ่งคือ 3 สำหรับการค้นหา 1 4 7 10 จะพบว่าโหนดที่ใช้เวลาเยอะสุดคือ โหนดที่ level ลึกสุด ดังนั้น x level จะมี n โหนด เท่ากับ 2x – 1 n = 2x – 1 log(n) = log(2x – 1) log(n) = log 2x เมื่อ 2x >> 1 log(n) = x ทำให้การค้นหาโหนดที่ level x จะใช้เวลาเท่ากับ log(n) 6 2 8 1 4 7 10

Algorithm Analysis in Binary Search Tree สรุปการค้นหา tree Best case O(1) Average case O(log n) Worst case O(n) ทำนองเดียวกันการ insert delete มี Big O เหมือนการค้นหา

Example 1. สร้าง Binary Search Tree โดย Tree จะต้องสามารถ ค้นหาได้ เพิ่มได้ ลบได้ แสดงผลทั้งหมดได้

Binary Search Tree 6 2 8 1 4 7 10 โครงสร้างเป็น class Tree

Binary Tree Class Tree{ Node L; Node R; } Class Node{ int indx; int data;