Department of Computer Science, BUU

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
Advertisements

Asst.Prof. Dr.Surasak Mungsing
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
โครงสร้างข้อมูลทรีและไบนารีทรี (Tree and Binary Tree)
Lecture9 Tree อ. วรวิทย์ วีระพันธุ์ เรียบเรียงโดย อ
บทที่ 5 การดำรงชีวิตของพืช
อสมการเชิงเส้นตัวแปรเดียว
ค คณิตศาสตร์สำหรับ คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม คุณสมบัติของต้นไม้ และต้นไม้ทวิภาค.
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
ค คณิตศาสตร์สำหรับ คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม การแทนกราฟ.
เป็นหลักสำคัญในการนำเสนอเนื้อหา ของบทเรียนคอมพิวเตอร์ช่วยสอนก็คือ ควร นำเสนอภาพที่เกี่ยวข้องกับเนื้อหา ประกอบ กับคำอธิบายสั้นๆ ง่ายๆ แต่ได้ใจความ การใช้ภาพประกอบจะทำให้ผู้เรียน.
Click when ready Wang991.wordpress.com © All rights reserved Stand SW 100 Relationchip and functions.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
หน่วยที่ 2 Introduction to Algorithm Analysis
DATA STRUCTURE AND ALGORITHM Linked List.
หน่วยที่ 6 กราฟ (Graphs)
Trees Hierarchical Structures. Outlines Definition of trees Modeling by trees Properties of trees Applications – Binary search trees – Prefix codes –
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
โปรแกรมคำนวณคะแนน สหกรณ์ ตามเกณฑ์ดีเด่นแห่งชาติ กรมส่งเสริม สหกรณ์ กองพัฒนาสหกรณ์ด้านการเงิน และร้านค้า วิธีการใ ช้
การเลือกข้อมูลจาก List การกำหนดเงื่อนไขการป้อนข้อมูลด้วย Data Validation การใส่ Comment / แสดง / แก้ไข / ลบ.
Project Management by Gantt Chart & PERT Diagram
หน่วยที่ 1 ปริมาณทางฟิสิกส์ และเวกเตอร์
Burin Rujjanapan Updated:
อาจารย์อภิพงศ์ ปิงยศ บทที่ 3 : รูปแบบการเชื่อมต่อเครือข่ายและส่วนประกอบของเครือข่ายท้องถิ่น (Topologies and LAN Components) Part3.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
Number system (Review)
อนุกรมอนันต์และการลู่เข้า
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
Trees (2) University of Phayao Sanchai Yeewiyom
อาจารย์อภิพงศ์ ปิงยศ บทที่ 3 : รูปแบบการเชื่อมต่อเครือข่ายและส่วนประกอบของเครือข่ายท้องถิ่น (Topologies and LAN Components) Part3.
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
BC320 Introduction to Computer Programming
ดิจิตอล + เลขฐาน บทที่ 2.
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
การสร้างโมเดลจำลองความสัมพันธ์ ระหว่างข้อมูล E-R Model
Data storage II Introduction to Computer Science ( )
Binary Numbers Hexadecimal Numbers
ต้นไม้เอวีแอล (AVL Tree)
บริษัท พัฒนาวิชาการ (2535) จำกัด
โครงสร้างข้อมูลแบบสแตก (stack)
บทที่7 ทฤษฎีกราฟเบื้องต้น
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
Data storage II Introduction to Computer Science ( )
บทที่ 2 ทฤษฎีบทพีทาโกรัส.
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
Data Structures and Algorithms 2/2561
บทที่ 7 การประมวลผลอาร์เรย์
Tree.
OPERATOR ภาษาปาสคาล (Pascal)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
4.4 AVL Trees AVL (Adelson-Velskii and Landis) tree เป็น binary search tree กำกับด้วยเงื่อนไขของการสมดุล และประกันว่า depth ของ tree จะเป็น O(log n) อย่างง่ายที่สุดคือกำหนดว่า.
4.7. B-Trees โครงสร้าง tree ที่กล่าวถึงมาแล้วนั้น อยู่บนสมมติฐานที่ว่าโครงสร้างทั้งหมดสามารถจัดเก็บอยู่ในหน่วยความจำของเครื่องคอมพิวเตอร์ได้ ถ้า จำนวนข้อมูลมีปริมาณมากเกินกว่าที่จะเก็บไว้ใน.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
Data Structure and Algorithms
Array: One Dimension Programming I 9.
การสเก็ตภาพสามมิติ(Three-Dimensional Pictorials )
การเติบโตของฟังก์ชัน (Growth of Functions)
บทที่ 4 การจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
บทที่ 2 ทฤษฎีบทพีทาโกรัส.
การวิเคราะห์และออกแบบขั้นตอนวิธี
พื้นฐานการมองแบบภาพ 2D 3D
ใบสำเนางานนำเสนอ:

Department of Computer Science, BUU Trees Department of Computer Science, BUU

Department of Computer Science, BUU Introduction to Trees ต้นไม้ (tree) สามารถใช้จำลองโครงสร้างต่างๆได้ เช่นโครงสร้างของสารประกอบอิ่มตัว โครงสร้างขององค์กร ระบบแฟ้มในคอมพิวเตอร์ เป็นต้น ต้นไม้(tree) คือกราฟเชื่อมต่อแบบไม่มีทิศทาง(connected undirected graph) ที่ไม่มีวงจร Theorem: มีทางเดินอย่างง่ายเพียงเส้นทางเดียวระหว่างสองโหนด(จุด)ใดๆ ป่า(forest)คือเซตของต้นไม้ที่ไม่มีโหนด(จุด)ร่วมกัน จุดใบไม้(leaf) ในต้นไม้หรือป่า เป็นจุดที่เป็น pendant หรือจุดสันโดษ(isolated) จุดภายใน(internal)คือจุดใดๆที่ไม่ใช่จุดใบ (ดังนั้นจุดภายในมีดีกรี ≥ ___ ) 2 Department of Computer Science, BUU

กราฟรูปใดต่อไปนี้เป็นต้นไม้ Department of Computer Science, BUU

Department of Computer Science, BUU Forest Department of Computer Science, BUU

Department of Computer Science, BUU Basic Definition ในวิชาเคมี ใช้กราฟแทนโมเลกุล จุดยอดของกราฟแทนอะตอม แต่ละด้านแทนพันธะ(bond) ระหว่างอะตอม Department of Computer Science, BUU

Rooted Trees ต้นไม้ที่มีราก(rooted tree) คือ ต้นไม้ที่มีการระบุให้จุดใดจุดหนึ่งเป็นราก(root)โดยทุกๆด้านจะมีทิศทางออกจากจุดราก เมื่อกำหนดให้จุดๆ หนึ่งเป็นรากของต้นไม้แล้ว เราสามารถจะกำหนดทางเดินที่เฉพาะเจาะจง(unique) จากรากไปยังจุดยอดอื่น ๆ ในต้นไม้ได้เสมอ สังเกตว่าต้นไม้ที่ไม่มีรากที่มี n โหนด จะสามารถสร้างเป็นต้นไม้ที่มีรากได้ n ต้นที่แตกต่างกัน ต้นไม้เดียวกันแต่ เลือกจุดรากคนละจุดกัน root root จุดใบแทนด้วยจุดสีเขียว จุดภายในแทนด้วยจุดสีน้ำตาล Department of Computer Science, BUU

Department of Computer Science, BUU Rooted Trees Example Department of Computer Science, BUU

คำศัพท์ที่เกี่ยวข้องกับต้นไม้ พ่อ/แม่ (Parent) ถ้า T เป็นต้นไม้แบบมีราก และ v เป็นจุดใน T ที่ไม่ใช่ราก แล้วพ่อ/แม่ของจุด v คือ จุด u เมื่อมีทางเดินจากจุด u ลงมาหาจุด v โดย u และ v ประชิดกัน และ u อยู่ใกล้รากมากกว่า v ลูก (Child) เมื่อ u เป็นพ่อ/แม่ของ v แล้วเราเรียก v ว่าลูกของ u พี่น้องกัน (Siblings) จุด 2 จุดหรือมากกว่า 2 จุด ที่มีพ่อ/แม่เดียวกันเรียกว่าพี่น้อง Department of Computer Science, BUU

คำศัพท์ที่เกี่ยวข้องกับต้นไม้ บรรพบุรุษ (Ancestor) บรรพบุรุษของจุดใด ๆ ที่ไม่ใช่รากของต้นไม้ คือจุดทุกจุดที่อยู่บนวิถีจากรากจนถึงจุดนั้น ลูกหลาน (Descendant) ลูกหลานของจุด v คือ จุดทุก ๆ จุดที่มี v เป็นบรรพบุรุษ ใบ (Leaf) จุดใด ๆ ที่ไม่มีลูก เรียกว่าใบ จุดภายใน (Internal vertex/nodes) จุดทุกจุดที่มีลูก คือจุดภายในหรือเราอาจกล่าวได้ว่า จุดภายในคือจุดที่ไม่เป็นใบ Department of Computer Science, BUU

Rooted-Tree Terminology Example root node a b c d e f g h i internal vertex parent of g leaf siblings Department of Computer Science, BUU

Rooted-Tree Terminology Example ancestors of h and i a b c d e f g h i Department of Computer Science, BUU

Rooted-Tree Terminology Exercise จงหาจุด parent, children, siblings, ancestors, และ descendants ของโหนด f o n h r k, l g a, c d m b l, k, q root a c g e q i f l p j k Department of Computer Science, BUU

Department of Computer Science, BUU m-ary trees ต้นไม้ที่มีราก จะเรียกว่า m ภาค(m-ary tree) ถ้าทุกๆจุดมีลูก(children)ไม่มากกว่า m จุด และ เรียกว่าต้นไม้ m ภาคเต็มต้น(full m-ary tree) ถ้าทุกๆจุดภายในมีลูกเท่ากับ m จุด ต้นไม้ 2-ary(มีลูกไม่เกิน 2 จุด) จะเรียกว่าต้นไม้ทวิภาค(binary tree) ทฤษฎี: ต้นไม้ที่มีรากเป็น binary tree ก็ต่อเมื่อทุกๆจุด(ยกเว้นจุดราก) มีดีกรี ≤ ___, และจุดรากมีดีกรี ≤ ___ 3 2 Department of Computer Science, BUU

ต้นใดเป็นต้นไม้แบบ m ภาคเต็มต้น? Full 3–ary tree Full 2–ary tree Full 5–ary tree Not full 3–ary tree Department of Computer Science, BUU

Department of Computer Science, BUU Some Tree Theorems ทฤษฎีบท 1 ต้นไม้ที่มีทั้งหมด n จุด จะมีจำนวนกิ่ง(ด้าน) e = n−1 ด้าน Department of Computer Science, BUU

Department of Computer Science, BUU Some Tree Theorems ทฤษฎีบท 2 ต้นไม้ m ภาคเต็มต้น(full m-ary tree) ที่มีจุดภายในจำนวน i จุด จะมีจำนวนจุดทั้งหมด n=mi+1 จุด และมีจุดใบ =(m−1)i+1 จุด Department of Computer Science, BUU

Department of Computer Science, BUU Some Tree Theorems ทฤษฎีบท 3 ต้นไม้แบบ m ภาคที่มีจุดทั้งหมด n จุดและมีจุดภายในจำนวน i จุดและมีจุดใบจำนวน  จุด จะได้ว่า i = (n-1)/m และ  = [(m-1)n+1]/m n = mi + 1 จุด และ  = (m-1)i + 1 n = (m - 1)/(m-1) และ i = ( -1)/(m-1) Department of Computer Science, BUU

Department of Computer Science, BUU ตัวอย่าง นางสาวตะวันฉายเป็นผู้เริ่มส่งจดหมายลูกโซ่อวยพรวันเกิดออกไปยังเพื่อน ๆ และขอร้องว่าให้แต่ละคนที่ได้รับจดหมายส่งจดหมายต่อไปถึงคนอื่น ๆ อีก 4 คน อยากทราบว่าจะมีคนทั้งหมดกี่คนที่ได้อ่านจดหมายฉบับนี้รวมทั้งนางสาวตะวันฉาย ถ้ากำหนดว่าไม่มีใครได้รับจดหมายเกินหนึ่งฉบับ และเมื่อกระบวนการส่งจดหมายลูกโซ่สิ้นสุดลง มีทั้งหมด 100 คนที่ได้อ่านจดหมายนี้แต่ไม่ยอมส่งจดหมายต่อ Department of Computer Science, BUU

Department of Computer Science, BUU ตัวอย่าง กระบวนการส่งจดหมายลูกโซ่เปรียบได้กับต้นไม้ 4 ภาค และจุดภายในคือ คนที่ส่งจดหมายต่อในขณะที่ใบคือผู้ที่ได้รับจดหมายแล้วไม่ส่งต่อ ให้ i แทนจำนวนจุดภายใน และ n แทนจำนวนคนทั้งหมด ในที่นี้ m = 4 จากทฤษฎี จะได้ว่า n = (m -1)/m-1 = [(4  100)-1]/(4-1) = 133 ดังนั้นมีผู้ได้รับจดหมายทั้งหมด 133 คน และ i = ( -1)/(m-1) = (100-1)/(4-1) = 33 ดังนั้นจำนวนคนที่ส่งจดหมายต่อมีทั้งหมด 33 คน Department of Computer Science, BUU

Some More Tree Theorems นิยาม: ระดับ(level) ของจุดคือความยาวของทางเดินอย่างง่ายจากราก(root)ไปยังจุดนั้น level 2 level 3 Department of Computer Science, BUU

Some More Tree Theorems ความสูง(height) ของต้นไม้ คือระดับของจุดที่มากที่สุด ระดับของราก (จุด a) = 0 ระดับของจุด b, j, k = 1 ระดับของจุด c, e, f, l = 2 ระดับของจุด d, g, i, m, n = 3 ระดับของจุด h = 4 ดังนั้น ความสูงของต้นไม้ T = 4 Department of Computer Science, BUU

Some More Tree Theorems ต้นไม้ m ภาค(m-ary tree) ที่มีราก ที่มีความสูง h เรียกว่าต้นไม้สมดุล(balanced) ถ้าจุดใบทุกจุดอยู่ที่ระดับ h หรือ h−1 ทฤษฎีบท: มีจำนวนใบอย่างมากที่สุด mh ใบ ในต้นไม้ m ภาค(m-ary tree) ที่มีความสูง h ทฤษฎีบทย่อย : ต้นไม้ m-ary ที่มีจุดใบ  ใบมีความสูง h≥logm ถ้าเป็นต้นไม้เต็มกิ่ง(full m-ary) และสมดุลความสูง h=logm Department of Computer Science, BUU

Applications of Trees Binary Search Tree Format ข้อมูลแต่ละตัวจะถูกเก็บลงในจุดของต้นไม้ โดยการจัดเรียงข้อมูลในต้นไม้สำหรับทุกๆค่า x คือ, ทุกๆจุดที่อยู่ในต้นไม้ย่อยด้านซ้าย(left subtree)ของ x จะมีค่าน้อยกว่า x ทุกๆจุดที่อยู่ในต้นไม้ย่อยด้านขวา(right subtree)ของ x จะมีค่ามากกว่า x ตัวอย่าง: 7 3 12 1 5 9 15 2 8 11 Department of Computer Science, BUU

Applications of Trees :Codes Codes That Can Be Decoded Fixed-length codes: Every character is encoded using the same number of bits. To determine the boundaries between characters, we form groups of w bits, where w is the length of a character. Examples: ASCII Prefix codes: No character is the prefix of another character. Huffman codes Department of Computer Science, BUU

Department of Computer Science, BUU Why Prefix Codes ? พิจารณาการกำหนดรหัสซึ่งไม่เป็น a prefix code: a = 01 m = 10 n = 111 o = 0 r = 11 s = 1 t = 0011 ดังนั้นถ้าท่านส่งข้อความ “You are a star.”ไปให้เพื่อน โดยท่านกำหนดรหัสของ “star” คือ “1 0011 01 11” เมื่อเพื่อนท่านได้รับข้อความและเกิดถอดรหัส(decodes)โดยใช้การกำหนดรหัสข้างต้น อาจถอดรหัสเป็นดังนี้: 100110111 = 10 0 11 0 111 = “moron” Department of Computer Science, BUU

Representing a Prefix-Code Dictionary Our example : ‹space› = 000 A = 0010 E = 0011 s = 010 c = 0110 g = 0111 h = 1000 i = 1001 l = 1010 t = 1011 e = 110 n = 111 1 1 1 1 1 1 1 ‹spc› s e n 1 1 1 1 A E c g h i l t Department of Computer Science, BUU

Department of Computer Science, BUU Huffman code เป็นรหัสที่มีความยาวไม่คงที่และมีน้ำหนักน้อยที่สุดในบรรดารหัสprefix code ขั้นตอนวิธีของการสร้าง Huffman code โดยใช้ต้นไม้ทวิภาคมีดังนี้ 1. เขียนตัวอักษรและความถี่กำกับจุดยอดแต่ละจุดแล้วเรียงความถี่จากน้อยไปหามาก 2. เชื่อมจุดยอดทางซ้าย 2 จุดกับจุดยอดใหม่ กำกับจุดยอดใหม่ด้วยผลบวกของความถี่ 3. เรียงความถี่จากน้อยไปหามาก 4. ทำขั้นตอนที่2 และ 3 ซ้ำไปเรื่อยๆจนจุดยอดทั้งหมดเชื่อมกันเป็นกราฟต้นไม้ทวิภาค 5. ลบความถี่ออก แล้วเขียน 0 กำกับด้านเอียงขึ้นและเขียนเลข 1 กำกับด้านเอียงลง(ความเอียงของด้านคิดจากซ้ายไปขวา) ผลที่ได้คือ Huffman tree Department of Computer Science, BUU

Department of Computer Science, BUU Applications of Trees Q: Use Huffman coding to encode the following five symbols with given frequencies: A: 45 , B: 13 ,C: 12 , D: 16 , E: 9, F: 5 f:5 b:13 c:12 d:16 e:9 a:45 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 30 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 30 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 30 55 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 30 55 Department of Computer Science, BUU

Department of Computer Science, BUU Huffman’s Algorithm f:5 b:13 c:12 d:16 e:9 a:45 14 25 30 55 100 1 100 101 1100 1101 111 Department of Computer Science, BUU

Department of Computer Science, BUU Tree Traversal Is a procedure that systematically visits every vertex of an ordered rooted tree. Visiting a vertex = processing the data at the vertex. อัลกอริธึมในการท่องไปบนต้นไม้(Traversal algorithms) Pre-order traversal NLR (node,left,right) In-order traversal LNR (left,node,right) Post-order traversal LRN (left,right, node) Department of Computer Science, BUU

Department of Computer Science, BUU Tree Traversal Let T be an ordered rooted tree with root r. Suppose that T1, T2, …, Tn are the subtrees at r from left to right in T. r 55 T2 T1 24 94 3 49 60 46 52 58 88 45 76 91 Department of Computer Science, BUU

Department of Computer Science, BUU Preorder Traversal Begins by visiting r. Next traverses T1 in preorder, then T2 in preorder, …, then Tn in preorder. Ends after Tn has been traversed. ssss Department of Computer Science, BUU

Department of Computer Science, BUU Preorder Traversal Visit root, visit subtrees left to right. ssss Department of Computer Science, BUU

Department of Computer Science, BUU Preorder Traversal ssss Department of Computer Science, BUU

Department of Computer Science, BUU Inorder Traversal Begins by traversing T1 in inorder Next visit r, then traverses T2 in inorder, …, then Tn in inorder. Ends after Tn has been traversed. sssss Department of Computer Science, BUU

Department of Computer Science, BUU Inorder Traversal Visit leftmost subtree,visit root, visit other subtrees left to right. sssss Department of Computer Science, BUU

Department of Computer Science, BUU Inorder Traversal sssss Department of Computer Science, BUU

Department of Computer Science, BUU Postorder Traversal Begins by traversing T1 in postorder Next traverses T2 in postorder,then T3 in postorder,...,then Tn in postorder End by visiting r sssssss Department of Computer Science, BUU

Department of Computer Science, BUU Postorder Traversal Visit subtree left to right,visit root. ssssss Department of Computer Science, BUU

Department of Computer Science, BUU Postorder Traversal ssss Department of Computer Science, BUU

Department of Computer Science, BUU Postorder Traversal Applications: compute space used by files in a directory and its subdirectories. Department of Computer Science, BUU

Tree Traversal Shortcut Preorder list is obtained by listing each vertex the first time this curve passes it. Result: a, b, d, h, e, i, j, c, f, g, k. Inorderlist is obtained by listing a leaf the first time the curve passes it and listing each internal vertex the second time the curve passes it. Result: h, d, b, i, e, j, a, f, c, k, g. Postorderlist is obtained by listing a vertex the last time it is passes on the way back up to its parent. Result: h, d, i, j, e, b, f, k, g, c, a. Department of Computer Science, BUU

Representing Arithmetic Expressions Complicated arithmetic expressions can be represented by an ordered rooted tree Internal vertices represent operators Leaves represent operands Build the tree bottom-up Construct smaller subtrees Incorporate the smaller subtrees as part of larger subtrees Department of Computer Science, BUU

Department of Computer Science, BUU Example (x+y)2 + (x-3)/(y+2) + 2  / + x y – x 3 + y 2 Department of Computer Science, BUU

Department of Computer Science, BUU Infix Notation Traverse in inorder adding parentheses for each operation +  – / 2 x y 3 ( ) ( ) ( ) x + y  2 + ( ) ( ) x – 3 / ( ) y + 2 Department of Computer Science, BUU

Prefix Notation (Polish Notation) Traverse in preorder +  – / 2 x y 3 +  + x y 2 / – x 3 + y 2 Department of Computer Science, BUU

Evaluating Prefix Notation In an prefix expression, a binary operator precedes its two operands The expression is evaluated right-left Look for the first operator from the right Evaluate the operator with the two operands immediately to its right Department of Computer Science, BUU

Department of Computer Science, BUU Example + / + 2 2 2 / – 3 2 + 1 0 + / + 2 2 2 / – 3 2 1 + / + 2 2 2 / 1 1 + / + 2 2 2 1 + / 4 2 1 + 2 1 3 Department of Computer Science, BUU

Postfix Notation (Reverse Polish) Traverse in postorder +  / + 2 – + y x y x 3 2 x y + 2  x 3 – y 2 + / + Department of Computer Science, BUU

Evaluating Postfix Notation In an postfix expression, a binary operator follows its two operands The expression is evaluated left-right Look for the first operator from the left Evaluate the operator with the two operands immediately to its left Department of Computer Science, BUU

Department of Computer Science, BUU Example 2 2 + 2 / 3 2 – 1 0 + / + 4 2 / 3 2 – 1 0 + / + 2 3 2 – 1 0 + / + 2 1 1 0 + / + 2 1 1 / + 2 1 + 3 Department of Computer Science, BUU

Department of Computer Science, BUU Tree Traversal - prefix expression ( - ( + 5 ( ^ ( + 8 ( * 3 4 ) ) 2 ) ) 7 ) + 7 infix expression 5 ^ ( ( 5 + ( ( 8 + ( 3 * 4 ) ) ^ 2 ) ) - 7 ) + 2 postfix expression 8 * 5 8 3 4 * + 2 ^ + 7 - 3 4 Department of Computer Science, BUU