Ceng-112 Data Structures I 1 Chapter 7 Introduction to Trees.

Slides:



Advertisements
Similar presentations
Binary Trees CSC 220. Your Observations (so far data structures) Array –Unordered Add, delete, search –Ordered Linked List –??
Advertisements

Introduction to Trees Chapter 6 Objectives
Data Structures: A Pseudocode Approach with C 1 Chapter 6 Objectives Upon completion you will be able to: Understand and use basic tree terminology and.
1 abstract containers hierarchical (1 to many) graph (many to many) first ith last sequence/linear (1 to 1) set.
TREES Chapter 6. Trees - Introduction  All previous data organizations we've studied are linear—each element can have only one predecessor and successor.
©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
Binary Trees, Binary Search Trees COMP171 Fall 2006.
CS 171: Introduction to Computer Science II
Trees Chapter 8.
Fall 2007CS 2251 Trees Chapter 8. Fall 2007CS 2252 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information.
Trees Chapter 8. Chapter 8: Trees2 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information To learn how.
Trees Chapter 8. Chapter 8: Trees2 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information To learn how.
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
Binary Trees A binary tree is made up of a finite set of nodes that is either empty or consists of a node called the root together with two binary trees,
©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Lec 15 April 9 Topics: l binary Trees l expression trees Binary Search Trees (Chapter 5 of text)
1 abstract containers hierarchical (1 to many) graph (many to many) first ith last sequence/linear (1 to 1) set.
Copyright©1999 Angus Wu PROGRAMMING METHDOLOGY AND SOFTWARE ENGINEERING EE PROGRAMMING METHODOLOGY AND SOFTWARE ENGINEERING.
KNURE, Software department, Ph , N.V. Bilous Faculty of computer sciences Software department, KNURE The trees.
Data Structures Arrays both single and multiple dimensions Stacks Queues Trees Linked Lists.
Binary Trees A binary tree is made up of a finite set of nodes that is either empty or consists of a node called the root together with two binary trees.
Trees. Tree Terminology Chapter 8: Trees 2 A tree consists of a collection of elements or nodes, with each node linked to its successors The node at the.
Advanced Algorithms Analysis and Design Lecture 8 (Continue Lecture 7…..) Elementry Data Structures By Engr Huma Ayub Vine.
CS Data Structures Chapter 5 Trees. Chapter 5 Trees: Outline  Introduction  Representation Of Trees  Binary Trees  Binary Tree Traversals 
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
Section 10.1 Introduction to Trees These class notes are based on material from our textbook, Discrete Mathematics and Its Applications, 6 th ed., by Kenneth.
Trees Chapter 8. Chapter 8: Trees2 Chapter Objectives To learn how to use a tree to represent a hierarchical organization of information To learn how.
Spring 2010CS 2251 Trees Chapter 6. Spring 2010CS 2252 Chapter Objectives Learn to use a tree to represent a hierarchical organization of information.
Binary Trees 2 Overview Trees. Terminology. Traversal of Binary Trees. Expression Trees. Binary Search Trees.
Tree (new ADT) Terminology:  A tree is a collection of elements (nodes)  Each node may have 0 or more successors (called children)  How many does a.
Data Structures and Algorithms Lecture (BinaryTrees) Instructor: Quratulain.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Tree Data Structures.
Data Structures and Algorithm Analysis Trees Lecturer: Jing Liu Homepage:
Prof. Amr Goneid, AUC1 CSCE 210 Data Structures and Algorithms Prof. Amr Goneid AUC Part 4. Trees.
Starting at Binary Trees
Computer Science: A Structured Programming Approach Using C Trees Trees are used extensively in computer science to represent algebraic formulas;
TREES. What is a tree ? An Abstract Data Type which emulates a tree structure with a set of linked nodes The nodes within a tree are organized in a hierarchical.
Chap 8 Trees Def 1: A tree is a connected,undirected, graph with no simple circuits. Ex1. Theorem1: An undirected graph is a tree if and only if there.
CE 221 Data Structures and Algorithms Chapter 4: Trees (Binary) Text: Read Weiss, §4.1 – 4.2 1Izmir University of Economics.
1 Storing Hierarchical Information Lists, Stacks, and Queues represent linear sequences Data often contain hierarchical relationships that cannot be expressed.
Tree Traversals, TreeSort 20 February Expression Tree Leaves are operands Interior nodes are operators A binary tree to represent (A - B) + C.
Chapter 12 Abstract Data Type. Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations.
Trees By P.Naga Srinivasu M.tech,(MBA). Basic Tree Concepts A tree consists of finite set of elements, called nodes, and a finite set of directed lines.
Rooted Tree a b d ef i j g h c k root parent node (self) child descendent leaf (no children) e, i, k, g, h are leaves internal node (not a leaf) sibling.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: There is a unique simple path between any 2 of its.
Trees Ellen Walker CPSC 201 Data Structures Hiram College.
1 Trees General Trees  Nonrecursive definition: a tree consists of a set of nodes and a set of directed edges that connect pairs of nodes.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
TREES General trees Binary trees Binary search trees AVL trees Balanced and Threaded trees.
1 Trees General Trees  Nonrecursive definition: a tree consists of a set of nodes and a set of directed edges that connect pairs of nodes.
Discrete Mathematics Chapter 10 Trees.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
1 Trees. 2 Trees Trees. Binary Trees Tree Traversal.
DS.T.1 Trees Chapter 4 Overview Tree Concepts Traversals Binary Trees Binary Search Trees AVL Trees Splay Trees B-Trees.
Chapter 12 Abstract Data Type.
Data Structure By Amee Trivedi.
Trees Chapter 15.
CSCE 210 Data Structures and Algorithms
Lecture 1 (UNIT -4) TREE SUNIL KUMAR CIT-UPES.
Tree.
Chapter 5 : Trees.
Tree.
Lecture 18. Basics and types of Trees
Binary Trees, Binary Search Trees
Binary Trees, Binary Search Trees
Trees.
Binary Trees, Binary Search Trees
Introduction to Trees Chapter 6 Objectives
Presentation transcript:

Ceng-112 Data Structures I 1 Chapter 7 Introduction to Trees

Ceng-112 Data Structures I 2 Introduction to Trees In the middle of nineteenth century, Gustav Kirchhoff studied on trees in mathematics. Several years later, Arthur Cayley used them to study the structure of algebraic formulas. In 1951, Grace Hopper’s use of them to represent arithmetic expressions. Hopper’s work bears a strong resemblance today’s binary tree formats.

Ceng-112 Data Structures I 3 Introduction to Trees Trees are used in computer science; –To represent algebraic formulas, –As an efficient method for searching large dynamic lists, –For such diverse applications as artificial intelligence systems, –And encoding algorithms.

Ceng-112 Data Structures I 4 Basic Concepts A tree consists of a finite set of elements, called nodes. A tree consists of a finite set of directed lines, called branches. These braches connect the nodes. The branch is directed towards the node, it is an indegree branch. The branch is directed away from the node, it is an outdegree branch.

Ceng-112 Data Structures I 5 Figure 7-1 The sum of the indegree and outdegree branches equals the degree of the node. If the tree is not empty, then the first node is called the root. The indegree of the root is zero. All of the nodes in a tree (exception of root) must have an indegree of exactly one. Basic Concepts

Ceng-112 Data Structures I 6 Basic Concepts Leaf, Outdegree= 0 Internal Nodes, is not a root or a leaf. Parent, Outdegree > 0 Child, indegree > 0 Siblings, with the same parent. Ancestor, is any node in the path from the root node. Descendent is, all nodes in the path from given node to the leaf.

Ceng-112 Data Structures I 7 Figure 7-2 Basic Concepts Height of tree = max. Level of leaf + 1

Ceng-112 Data Structures I 8 Figure 7-3 A subtree is any connected structure below the root. A subtree can be divided into subtrees. Basic Concepts

Ceng-112 Data Structures I 9 algorithm ConvertToParent(val root, ref output )‏ Convert a general tree to parenthetical notation. Pre root is a pointer to a tree node. Post output contains parenthetical notation. 1.Place root in output 2.If (root is parent)‏ 1.Place an open parenthesis in the output 2.ConvertToParent(root’s first child)‏ 3.While (more siblings)‏ ConvertToParent(root’s next child)‏ 4.Place close parenthesis in the output 3.Return End ConvertToParent Root ( B ( C D ) E F ( G H I) )‏

Ceng-112 Data Structures I 10 Figure 7-5 Binary Trees A binary tree is a tree in which no node can have more than two subtrees.

Ceng-112 Data Structures I 11 Figure 7-6 Null tree Symmetry is not a tree requirement! Binary Trees

Ceng-112 Data Structures I 12 Maximum height of tree for N nodes: H max = N The minimum height of the tree : H min = [log 2 N] + 1 If known the height of a tree: N min = H N max = 2 H -1 Binary Trees

Ceng-112 Data Structures I 13 Figure 7-7 Binary Trees - Balance A complete tree has the maximum number of entries for its heigh. N max = 2 H -1 The distance of a node from the root determines how efficiently it can be located. The “balance factor” show that the balance of the tree. B = H L – H R If B = 0, 1 or -1; the tree is balanced.

Ceng-112 Data Structures I 14 Binary Tree Structure Each node in the structure must contain the data to be stored and two pointers, one to the left subtree and one to the right subtree. Node leftSubTree data rightSubTree End Node

Ceng-112 Data Structures I 15 Figure 7-25

Ceng-112 Data Structures I 16 Figure 7-8 Binary Tree Traversals A binary tree travelsal requires each node of the tree be processed once. In the depth-first traversal, all of the descendents of a child are processed before the next child. In the breadth-first traversal, each level is completely processed before the next level is started. Three different depth-first traversal sequences. NLRLNR LRN

Ceng-112 Data Structures I 17 Figure 7-9 Binary Tree Traversals Preorder = ? Inorder = ? Postorder = ?

Ceng-112 Data Structures I 18 Figure 7-10 Binary Tree Traversals - Preorder

Ceng-112 Data Structures I 19 Figure 7-11 Recursive algorithmic traversal of binary tree. Binary Tree Traversals - Preorder

Ceng-112 Data Structures I 20 Figure 7-12 Binary Tree Traversals - Inorder

Ceng-112 Data Structures I 21 Figure 7-13 Binary Tree Traversals - Postorder

Ceng-112 Data Structures I 22 Figure 7-14 Binary Tree – Breadth-First Traversals

Ceng-112 Data Structures I 23 Figure 7-15 Expression Trees An expression tree is a binary tree with these properties: 1.Each leaf is an operand. 2.The root and internal nodes are operators. 3.Subtrees are subexpressions with the root being an operator.

Ceng-112 Data Structures I 24 Figure 7-16 Infix Traversal Of An Expression Tree

Ceng-112 Data Structures I 25 Infix Traversal Of An Expression Tree algorithm infix (val tree )‏ Print the infix expression for an expression tree. Pre tree is a pointer to an expression tree Post the infix expression has been printed 1. If (tree not empty)‏ 1. if (tree->token is an operand)‏ 1. print (tree->token)‏ 2 else 1. print (open parenthesis)‏ 2. infix(tree->left)‏ 3. print(tree->token)‏ 4. infix(tree->right)‏ 5. print(close parenthesis)‏ 2. Return end infix

Ceng-112 Data Structures I 26 Huffman Code ASCII: 7 bits each character Some characters occur more often than others, like 'E' Every character uses the maximum number of bits Huffman, makes it more efficient –Assign shorter codes to ones that occur often –Longer codes for the ones that occur less often Typical frequencies:

Ceng-112 Data Structures I 27 Huffman Code 1.Organize character set into a row, ordered by frequency. 2.Find two nodes with smallest combined weight, join them and form a third. 3.Repeat until ALL are combined into a tree..

Ceng-112 Data Structures I 28 Huffman...

Ceng-112 Data Structures I 29 Huffman

Ceng-112 Data Structures I 30 Huffman... Now we assign a code to each character Assign bit value for each branch: –0 = left branch, –1 = right branch. A character's code is found by starting at root and following the branches.

Ceng-112 Data Structures I 31 Huffman Note that the letters that occur most often are represented with very few bits

Ceng-112 Data Structures I 32 General Trees A general tree is a tree which each node can have an unlimited outdegree. Binary trees are presented easier then general trees in programs. In general tree, there are two releationships that we can use: –Parent to child and, –Sibling to sibling. Using these two relationships, we can represent any general tree as a binary tree.

Ceng-112 Data Structures I 33 Figure 7-17 Converting General Trees To Binary Trees

Ceng-112 Data Structures I 34 Figure 7-18 Insertion Into General Trees FIFO insertion; the nodes are inserted at the end of the sibling list, (like insertion at the rear of the queue).

Ceng-112 Data Structures I 35 Figure 7-19 LIFO insertion; places the new node at the beginning of the sibling list, (like insertion at the front of the stack). Insertion Into General Trees

Ceng-112 Data Structures I 36 Figure 7-20 Insertion Into General Trees Key-sequence insertion; places the new node in key sequence among the sibling nodes.

Ceng-112 Data Structures I 37 Excercises Show the tree representation of the following parenthetical notation: a ( b c ( e (f g) ) h )‏

Ceng-112 Data Structures I 38 Figure 7-21 Find: 1.Root 2.Leaves 3.Internal nodes 4.Ancestors of H 5.Descendents of F 6.Indegree of F 7.Outdegree of B 8.Level of G 9.Heigh of node I Excercises

Ceng-112 Data Structures I 39 Figure 7-22 Excercises What is the balance factor of the below tree?

Ceng-112 Data Structures I 40 Figure 7-23 Exercises Find the infix, prefix and postfix expressions of the below tree.

Ceng-112 Data Structures I 41 Exercise (Quiz?!)‏ Write the binary tree preorder traversal algorithm using a stack instead of recursion. Algorithm preorderTraverse(ref tree, stack )‏ Pre: tree variable has the address of the non-empty binary tree. stack variable has the address of an empty stack. Post: Binary tree is printed in preorder sequence. 1.initialize address variable with the pointer value of the binary tree 2.Push (stack, tree)‏ 3.while (stack is not empty)‏ 1.address=Pop(stack)‏ 2.write(address->value)‏ 3.if (address->right != null)‏ Push(stack, address->right 4.if (address->left != null)‏ 1.Push(stack, address->left)‏ 4.end A B E C D F G address A B C D E Printed: A,B,C,D,E,F,G A E B D C G F

Ceng-112 Data Structures I 42 HW-7 Write a program to: Create the following binary tree and; Create a menu to select the printing of infix, prefix and postfix expressions of the tree. Print the tree selected expression type. Load your HW-6 to FTP site until 04 May. 07 at 09:00 am.