280 likes | 369 Views
CHAPTER 9. TREE. TREE (1). ข้อสังเกตของกราฟต้นไม้ - ไม่มี circuit - ไม่มี multigraph - ไม่มี loop - ไม่ระบุทิศทาง. TREE (1).
E N D
CHAPTER 9 TREE
TREE (1) • ข้อสังเกตของกราฟต้นไม้ - ไม่มี circuit - ไม่มี multigraph - ไม่มี loop - ไม่ระบุทิศทาง
TREE (1) • Rooted tree (รากของต้นไม้) เป็นกราฟที่มีจุดยอด 1 จุดยอดที่ถูกแสดงให้เป็น root หรือรากของต้นไม้ และทุก ๆ ด้านที่เชื่อมระหว่างจุดยอดจะออกจาก root โดยกราฟจะแสดงในลักษณะคว่ำลง a c g f a b d e c b d b d e f g f e a g c Root c Root a
ส่วนประกอบของกราฟต้นไม้ส่วนประกอบของกราฟต้นไม้ • Parent • Child • Sibling • Ancestor • Descendant • Leaf • Internal vertices • Subtree a g b f c h j i e l d k m
M – ARY TREE • Full m–ary tree ก็ต่อเมื่อ ทุก ๆ internal vertices มี child เท่ากันทุกตัว • Full binary tree ก็ต่อเมื่อ ทุก ๆ internal vertices มี child เท่ากันทุกตัว เท่ากับ 2
PROPERTIES OF TREES • Left child / Right child / Left subtree / Right subtree Properties of trees: vertex (n), m-ary (m), internal vertices (i), Leaf (l) • i = (n-1)/m <internal vertices> และ l = [(m -1) n +1] / m <leaves> • n = mi + 1 <vertices> และ l = (m -1) I +1 <leaves> • n = (ml -1) / (m -1) <vertices> และ i = (l -1) / (m -1) <internal vertices>
EXAMPLE • สมมุติให้มีคน 1 คนส่งจม. ลูกโซ่ 1 ฉบับ และมีข้อกำหนดที่ว่าผู้รับจม. จะต้องส่งคนอีก 4 คน ซึ่งในการส่งต่อจม.อาจจะมีคนทำการส่งต่อและไม่ส่งต่อก็ได้ แต่คนหนึ่งคนสามารถรับจม.ได้แค่ 1 ฉบับ และ จม.ลูกโซ่นี้จะสิ้นสุดเมื่อมีจำนวนคนที่ได้รับจม.แต่ไม่ได้ส่งต่อถึง 100 คน จงหาว่าจำนวนคนที่ได้รับจม.ทั้งหมดกี่คน และคนที่ทำการส่งจม.ต่อกี่คน n = (ml -1) / (m -1)
ANSWER • m = 4 • i = คนที่ส่งจม.ลูกโซ่นี้ต่อ • l = คนที่ไม่ได้ส่งจม.ลูกโซ่นี้ต่อ n = (ml - 1) / (m - 1) n = [(4 * 100)-1] / (4 - 1) n = 399 / 3 n = 133 คนที่ส่งจม.ลูกโซ่นี้ต่อ คือ i = 133 – 100 = 33 คนที่ได้รับจม.ทั้งหมด
LEVEL / HEIGHT • Level of tree • Height of root tree a g b f c h j i e l d k m
BINARY SEARCH TREE • Binary search tree Exวาดกราฟต้นไม้โดยหาแบบ binary search tree โดยต้องเรียงลำดับอักษรตาม alphabet มีคำดังนี้ Mathematics, Physics, Geography, Zoology, Meteorology, Geology, Psychology, Chemistry Mathematics Geography Physics Zoology Meteorology Chemistry Geology Psychology
PREORDER TRAVERSAL • Preorder traversal r Step 1 T1 T2 Tn …. Step 2 Step 3 Step n+1
EXAMPLE OF PREORDER TRAVERSAL 1 d a b c a (1) e g i f d h b c k j e l m g i f h k n o p j l m d c a b e f g h i (2) n o p k j l m n o p
EXAMPLE OF PREORDER TRAVERSAL 1 d c a b e f g h i (2) k j l m n o p d g c a b e j f l m h i (3) k n o p d g c a b e j n o p f l m h i (4) k
INORDER TRAVERSAL • Inorder traversal Step 2 r T1 T2 Tn …. Step 1 Step 3 Step n+1
EXAMPLE OF PREORDER TRAVERSAL b a c d (1) a e g i f d b h c k e j g i f l m h k n o p j l m b f (2) e a c g h d i n o p k j l m n o p
EXAMPLE OF INORDER TRAVERSAL b f (2) e a c g h d i k j l m n o p b f j e a c l g m h d k i (3) n o p b f j e n o p a c l g m h d k i (4)
POSTORDER TRAVERSAL • Postorder traversal Step n+1 r T1 T2 Tn …. Step 1 Step 2 Step 3
ARITHMETIC EXPRESSION • Operators: + - * / + - = (x + y) 2 = x + y = x - y 2 x x y y + x y / + = (x - 4) / 3 - 3 = ((x+y) 2) + ((x-4)/3) / + 2 - 3 x 4 x y x 4
PREFIX (PREORDER) r Step 1 ( (x + y) 2) + ( (x - 4) / 3) (1) + T1 T2 Tn …. Step 2 / Step 3 Step n+1 + 2 - 3 - 3 (3) + 2 / + x y x 4 x 4 x y (2) + / - 3 + 2 - (4) + + 2 / 3 x y x 4 x 4 x y
INFIX (INORDER) Step 2 r ( (x + y) 2) + ( (x - 4) / 3) (1) + T1 T2 Tn …. Step 1 / Step 3 Step n+1 + 2 - 3 (3) + + - / x y x 4 3 2 x x y 4 (2) + / (4) + + - / x y x 3 2 4 - 3 + 2 x 4 x y
POSTFIX (POSTORDER) Step n+1 r ( (x + y) 2) + ( (x - 4) / 3) (1) + T1 T2 Tn …. Step 1 / Step 2 Step 3 + 2 - 3 2 (3) + - 3 / + x y x 4 x x y 4 (2) / + - + 3 2 2 (4) - 3 / x + y x + 4 x x 4 y
VALUE EXPRESSION • Value expression - value of the prefix expression (right to left) - value of the postfix expression (left to right) EX.หา Prefix expression ของ + - * 2 3 5 / 2 3 4 + - * 2 3 5 / 2 3 4 + - 6 5 2 + - * 2 3 5 / 8 4 + 1 2 3 + - * 2 3 5 2
VALUE EXPRESSION EX.หา Postfix expression ของ 7 2 3 * - 4 9 3 / + 7 2 3 * - 4 9 3 / + 7 6 - 4 9 3 / + 1 4 9 3 / + 1 9 3 / + 1 3 + 4
SPANNING TREE • จะเป็น Subgraph ของกราฟ G แต่จะต้องประกอบไปด้วยทุกจุดที่อยู่บนกราฟ G b c d a e g f b c d a e g f
SPANNING TREE b c d a e g f b c d a e g f
DEPTH – FIRST SEARCH • Depth – First Search • เลือกจุดยอดมา 1 จุด • เดินผ่านจุดยอดต่าง ๆ ไปเรื่อย ๆอย่างละ 1 ครั้งจนสุด • Backtracking เดินย้อนกลับไปเพื่อหาเส้นเชื่อมระหว่างจุดใหม่ • ถ้ากราฟใหม่ที่ได้ผ่านจุดยอดครบทุกจุด = Spanning tree d d a a g g c c f f b b e e
BREADTH – FIRST SEARCH • Breadth – First Search • เลือกจุดยอดมา 1 จุด • ไปตามเส้นเชื่อมจุดทุกเส้นจนไม่สามารถไปต่อได้ d a g c f b e