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

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

LOGO 1 โครงสร้างข้อมูลทรี และไบนารีทรี (Tree and Binary Tree)

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


งานนำเสนอเรื่อง: "LOGO 1 โครงสร้างข้อมูลทรี และไบนารีทรี (Tree and Binary Tree)"— ใบสำเนางานนำเสนอ:

1 LOGO 1 โครงสร้างข้อมูลทรี และไบนารีทรี (Tree and Binary Tree)

2 2 A BC NodeA, B, C BranchAB, AC NodeA, B, C BranchAB, AC Terminology  ต้นไม้ (Tree) ประกอบด้วย 1.Node ใช้เก็บข้อมูล 2.Branch ใช้เชื่อม Node เข้าด้วยกัน

3 3  Degree หมายถึง จำนวน Branch ที่สัมพันธ์กับ Node แบ่งเป็น 1. Indegree หมายถึง Branch ที่เข้าหา Node 2. Outdegree หมายถึง Branch ที่ออกจาก Node A BC Node A มี Degree เท่ากับ 2 Indegree = 0 Outdegree = 2 Node A มี Degree เท่ากับ 2 Indegree = 0 Outdegree = 2

4 4  Root หมายถึง Node แรกของ Tree A BC Root

5 5 ดังนั้นจะพบว่าต้นไม้ทั่วไป RootมีIndegree = อื่นๆมีIndegree = 1 0 RootมีOutdegree = อื่นๆมีOutdegree = N N

6 6  Leaf หรือ External node หมายถึง Node ที่มี Outdegree เท่ากับ 0 A BC LeafB, C

7 7  Internal node หมายถึง Node ที่ไม่ใช่ Root และ Leaf A BC DE RootA LeafD, E, C Internal nodeB RootA LeafD, E, C Internal nodeB

8 8  Parent หมายถึง Node ที่มี Outdegree A BC DE ParentA, B

9 9  Child หมายถึง Node ที่มี Indegree A BC DE ChildB, C, D, E

10 10  Sibling หมายถึง Node ที่มี Parent เดียวกัน A BC DE Sibling{B, C}, {D, E}

11 11  Path หมายถึง เส้นทางจาก Node หนึ่งไปยังอีก Node หนึ่ง A BC DE Path จาก A ไป EA - > B -> E **ทุก Node ใน Tree จะต้องมี Path เดียวเท่านั้น **

12 12  Ancestor หมายถึง ทุก Node ในเส้นทางจาก Root ไปยัง Node ที่ต้องการ A BC DE Ancestor ของ E A, B Ancestor ของ E A, B

13 13  Descendent หมายถึง ทุก Node ในเส้นทางจาก Node ที่กำหนดไปจนถึง Leaf A BC DE Descendent ของ A B, C, D, E Descendent ของ B D,E Descendent ของ A B, C, D, E Descendent ของ B D,E

14 14  Level หมายถึง ระยะทางจาก Root A BC DE Leve l 0 Leve l 1 Leve l 2

15 15  Height ของ Tree หมายถึง Level สูงสุด ของ Leaf บวกด้วย 1 Level 0 A BC DE Level 1 Level 2 Height = = 3 Height = = 3

16 16  Depth ของ Node หมายถึง ความยาวของ path จาก root node ถึง node นั้น ดังนั้น root node จึงมีความลึก (Depth) เป็น 0  Depth ของ Tree หมายถึง ความลึกของ leaf node ที่อยู่ลึกที่สุด ซึ่งจะมีค่าเท่ากับความสูงของ tree เสมอ

17 17 Parents Children Siblings Leaves Internal nodes Ancestor of G Descendent of A Height Parents Children Siblings Leaves Internal nodes Ancestor of G Descendent of A Height A,B,F B,E,F,C,D,G,H,I {B,E,F}, {C,D}, {G,H,I} C,D,E,G,H,I B,F A,F B,E,F,C,D,G,H,I 3

18 18  Subtree หมายถึง โครงสร้างที่เชื่อมต่อกัน ภายใต้ Root โดย  Node แรกของ Subtree จะเป็น Root ของ Subtree นั้น และใช้เป็นชื่อเรียก Subtree  Subtree สามารถแบ่งย่อยเป็น Subtree ได้อีก จนกว่าจะ Empty

19 19 Subtree

20 20 1. จากต้นไม้ต่อไปนี้ จงหา 1.1 Root 1.2 Leaves 1.3 Internal nodes 1.4 Ancestors of H 1.5 Descendents of F แบบฝึกหัด

21 21 2. จากต้นไม้ต่อไปนี้ จงหา 2.1 Indegree of node F 2.2 Outdegree of node G 2.3 Siblings of I 2.4 Parent of G 2.5 Children of C

22 22 3. จากต้นไม้ต่อไปนี้ จงหา 3.1 Height of the tree 3.2 Height of subtree G 3.3 Level of node I 3.4 Level of node A 3.5 Height of subtree E

23 23 Binary Tree หมายถึง ต้นไม้ที่แต่ละ Node มี Subtree <= 2 หรือ Outdegree <= 2

24 24 ตัวอย่าง Binary Tree

25 25 Emptyหรือ Null Tree

26 26 Height of Binary Tree คำถามที่ 1 มี Node อยู่ทั้งหมด 7 Nodes 1.1 จะสร้าง Tree ให้มี Height สูงสุดได้เท่าไร อย่างไร 1.2 จะสร้าง Tree ให้มี Height ต่ำสุดได้เท่าไร อย่างไร H max =N H min =log 2 N + 1 H max =N H min =log 2 N + 1 log 2 N จำนวนเต็มที่มากที่สุดที่น้อยกว่าหรือเท่ากับ log 2 N

27 27 คำถามที่ 2 Tree ที่มี Height = จะมี Node สูงสุดได้เท่าไร อย่างไร 2.2 จะมี Node ต่ำสุดได้เท่าไร อย่างไร N max =2 H - 1 N min =H N max =2 H - 1 N min =H

28 28 Complete Binary Tree Binary Tree ที่มี Node เต็มทุก Level Nearly Complete Binary Tree Binary Tree ที่มี Node เต็มทุก Level ยกเว้น Level สุดท้าย และ Node ใน Level สุดท้ายอยู่เรียงกันทางซ้ายมือ

29 29 Complete และ Nearly Complete Binary Tree

30 30 This association suggests that a complete binary tree can be implemented with an array: ABCDERSFG L [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

31 31 ABCDERSFG L [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

32 32 ABCDERSFG L [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

33 33 ABCDERSFG L [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

34 34 Binary Tree Traversal 1.Depth-first Descendent ทั้งหมดของ Child จะต้องถูก ประมวลผลก่อน Child ถัดไป 2.Breath-first ประมวลผลทีละ Level จากบนลงล่าง

35 35 N L R L N R L R N 1. Depth-first

36 36 แบบ Preorder N L R algorithm preOrder (val root ) 1 if (root is not null) 1 process(root) 2 preOrder(root->leftSubtree) 3 preOrder(root->rightSubtree) 2 return

37 37 แบบ Inorder L N R algorithm inOrder (val root ) 1 if (root is not null) 1 inOrder(root->leftSubtree) 2 process(root) 3 inOrder(root->rightSubtree) 2 return

38 38 แบบ Postorder L R N algorithm postOrder (val root ) 1 if (root is not null) 1 postOrder(root->leftSubtree) 2 postOrder(root->rightSubtree) 3 process(root) 2 return

39 39 algorithm breathFirst (val root ) 1 p = root 2 while (p not null) 1 process(p) 2 if (p->left not null) 1 enqueue(p->left) 3 if (p->right not null) 1 enqueue(p->right) 4 if (not emptyQueue) 1 dequeue(p) else 1 p = null 3 return 2. Breath-first

40 40 แบบฝึกหัด 1. จากต้นไม้ต่อไปนี้ จงหาลำดับการประมวลผล แบบ Depth-first ทั้งหมด A B C D E R S F G L

41 41 2. จากต้นไม้ต่อไปนี้ จงหาลำดับการประมวลผล แบบ Breath-first A B C D E R S F G L

42 42 Binary Tree Application 1.Expression Tree 2.Huffman Code

43 43 1. Expression Tree หมายถึง Binary Tree ที่มีคุณสมบัติ ดังต่อไปนี้ 1.Leaf เก็บ Operand 2.Root และ Internal node เก็บ Operator 3.Subtree เป็น Sub expression

44 44 ตัวอย่าง

45 45 การท่องใน Expression Tree 1.Preorder Traversal 2.Postorder Traversal 3.Inorder Traversal Prefix Expression Postfix Expression Infix Expression

46 46 1. Preorder Traversal + * a + b c d 1 if (root is not null) 1 print(root->token) 2 prefix(root->leftSubtree) 3 prefix(root->rightSubtree) 2 return

47 47 2. Postorder Traversal a b c + * d + 1 if (root is not null) 1 postfix(root->leftSubtree) 2 postfix(root->rightSubtree) 3 print(root->token) 2 return

48 48 3. Inorder Traversal 1 if (root is not null) 1 if root->token is operand 1 print(root->token) else 1 print(open parenthesis) 2 infix(root->leftSubtree) 3 print(root->token) 4 infix(root->rightSubtree) 5 print(close parenthesis) 2 return ( ( a * ( b + c ) ) + d )

49 49 การสร้าง Expression Tree จาก Postfix Expression พิจารณาทีละ Token จนหมด  ถ้า Token เป็น Operand สร้าง Node แล้ว Push ลง Stack  ถ้า Token เป็น Operator Pop ขึ้นมา 2 ตัวเชื่อมเป็น Tree โดยใช้ Operator แล้ว Push ลง Stack

50 50 ตัวอย่าง จากนิพจน์ Postfix a b c + * d + จะได้ Expression Tree ดังนี้

51 51 แบบฝึกหัด จงแสดง Expression Tree จากนิพจน์ Postfix ที่ กำหนดให้ A B * C D / + E F - *

52 52 2. Huffman Code Problem  บีบอัด file โดยไม่ให้เสียข้อมูลไปเลยได้อย่างไร  ให้ M เป็น ข้อมูลที่เราต้องการบีบอัด สมมติว่ามันมีขนาด 100,000 characters ซึ่งประกอบไปด้วยตัวอักษร a ถึง e เท่านั้น  สมมติให้ 1 character ใช้ 1 byte (8 bits)  ฉะนั้น 100,000 characters ใช้ 800,000 bits  เราสามารถลดจำนวน bits ที่ใช้แต่ละ ตัวอักษรได้หรือไม่ ?

53 53 เนื่องด้วยมีตัวอักษรเพียง 5 ตัว ดังนั้น สมมติให้ 1 character ใช้ 3 bits ดังนั้น จำนวน bits ที่ใช้จะลดลง เหลือ 300,000 bits

54 54 ถ้าลดจำนวนบิตลงอีก จะเห็นว่า จำนวน bits ที่ใช้จะ ลดลง แต่สมมติข้อมูล สามารถเป็นได้ทั้ง aababa หรือ cbda ก็ ได้ !!

55 55 ใช้ Huffman Code  เป็นรหัสแทนตัวอักษรที่แต่ละตัวอักษรมีความ ยาวของรหัสแตกต่างกัน  โดยตัวอักษรที่ใช้บ่อย จะมีขนาดสั้น ตัวอักษรที่ใช้น้อย จะมีขนาดยาว  ทั้งนี้เพื่อทำให้ข้อมูลมีขนาดเล็กลง

56 56 ตัวอย่าง การสร้าง Huffman Tree เพื่อหา Huffman Code สมมติให้

57 57

58 58

59 59

60 ดังนั้นจะได้ a00001 b00000 c0001 d011 e010 f001 g11 h10

61 61 แบบฝึกหัด กำหนดความถี่ของการใช้งานตัวอักษรต่าง ๆ ดังนี้ A = 30% C = 15%E = 25% B = 15% D = 10%F = 5% จงสร้าง Huffman Code แทนตัวอักษรดังกล่าว

62 62 General Tree หมายถึง Tree ที่สามารถมี Outdegree ได้ ไม่จำกัดจำนวน

63 63 การแปลง General Tree เป็น Binary Tree มี 3 ขั้นตอน ดังนี้ 1. ระบุ Child ที่อยู่ทางซ้ายสุด 2. เชื่อม Sibling เข้าด้วยกัน 3. ลบ Branch ที่ไม่ต้องการ

64 64 ตัวอย่าง การแปลง General Tree เป็น Binary Tree


ดาวน์โหลด ppt LOGO 1 โครงสร้างข้อมูลทรี และไบนารีทรี (Tree and Binary Tree)

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


Ads by Google