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

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

WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 5 Tree Part 1 1.

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


งานนำเสนอเรื่อง: "WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 5 Tree Part 1 1."— ใบสำเนางานนำเสนอ:

1 WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 5 Tree Part 1 1

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

3 Tree 3 ชื่อภาษไทยแผนภาพต้นไม้ หมายถึงลักษณะโครงสร้างข้อมูลที่มีลักษณะไม่เป็นเชิงเส้น (non-linear) โดยโครงสร้างคล้ายต้นไม้ A B CD E FGHIJK LM

4 Tree Terminology 4 โหนด (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)

5 Tree Terminology 5 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

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

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

8 Binary Tree 8 A BD GH LM 5

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

10 Searching Binary Search Tree 10 การค้นหาข้อมูลใน Binary search tree เช่น ต้องการค้นหา

11 Searching Binary Search Tree 11 การค้นหาข้อมูลใน Binary search tree เริ่มจากเปรียบเทียบค่ากับ root โดย 8 มากกว่า 4 step

12 Searching Binary Search Tree 12 การค้นหาข้อมูลใน Binary search tree เปรียบเทียบกับ 6 โดย 8 มากกว่า 6 step

13 Searching Binary Search Tree 13 การค้นหาข้อมูลใน Binary search tree step

14 Insertion Binary Search Tree 14 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step 1

15 Insertion Binary Search Tree 15 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step 2 2

16 Insertion Binary Search Tree 16 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step 3 28

17 Insertion Binary Search Tree 17 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step

18 Insertion Binary Search Tree 18 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step

19 Insertion Binary Search Tree 19 การแทรกข้อมูลใน Binary search tree เช่น ต้องการเพิ่มข้อมูล step

20 Insertion Binary Search Tree 20 การแทรกข้อมูลใน Binary search tree ถ้าต้องการเพิ่มข้อมูล 10 เข้ามาจะได้ 6 step

21 deletion Binary Search Tree 21 การลบข้อมูลใน Binary search tree ถ้าต้องการลบ 3 จะเห็นว่าไม่ใช่เรื่องยาก นั่นคือดึงออกได้เลย 6 step

22 deletion Binary Search Tree 22 การลบข้อมูลใน Binary search tree ลบ 3 6 step

23 deletion Binary Search Tree 23 การลบข้อมูลใน Binary search tree แต่ถ้าต้องการลบ 2 6 step

24 deletion Binary Search Tree 24 การลบข้อมูลใน Binary search tree ดึง 1 หรือ 4 เข้ามาแทนที่ 2 6 step

25 Algorithm Analysis in Binary Search Tree 25 ตัวอย่าง tree ต่อไปนี้ มีโหนดทั้งหมด 7 โหนด หรือ = = level 1 = 2 0 level 2 = 2 1 level 3 = 2 2 ดังนั้นถ้ามี x level จะมีโหนดเท่ากับ 2 x x-2 +… = 2 x -1

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

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

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

29 Algorithm Analysis in Binary Search Tree 29 แต่ถ้า tree เป็นแบบนี้ล่ะ Worst Case สำหรับการค้นหา 11 คือ 7 หรือ n เท่ากับจำนวนโหนดทั้งหมด

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

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

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

33 Binary Search Tree โครงสร้างเป็น class Tree

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


ดาวน์โหลด ppt WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 5 Tree Part 1 1.

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


Ads by Google