Make Money Fast! Stock Fraud Apply shortcuts Bank Robbery Just For Laughs Trees This one is cool eITnotes.com For more notes and topics visit: www.eITnotes.com.

Slides:



Advertisements
Similar presentations
Trees and Binary Trees Become Rich Force Others to be Poor Rob Banks
Advertisements

Trees1 More on Trees University Fac. of Sci. & Eng. Bus. School Law School CS Dept. EE Dept. Math. Dept.
Data Structures Lecture 6 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
Trees Briana B. Morrison Adapted from Alan Eugenio.
© 2004 Goodrich, Tamassia Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery.
© 2004 Goodrich, Tamassia Priority Queues1 Heaps: Tree-based Implementation of a Priority Queue.
© 2004 Goodrich, Tamassia Trees1 Chapter 7 Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery.
Trees1 Recursion Recursion is a concept of defining a method that makes a call to itself.
Chapter 7: Trees Objectives:
© 2004 Goodrich, Tamassia Trees1 Lecture 04 Trees Topics Trees Binary Trees Binary Search trees.
Elementary Data Structures Stacks, Queues, & Lists Amortized analysis Trees.
1 Chapter 7 Trees. 2 What is a Tree In computer science, a tree is an abstract model of a hierarchical structure A tree consists of nodes with a parent-child.
© 2004 Goodrich, Tamassia Trees1 this is a tree. © 2004 Goodrich, Tamassia Trees2 What is a Tree? In computer science, a tree is an abstract model of.
Trees COMP53 Oct 31, What is a Tree? A tree is an abstract model of a hierarchical structure A tree consists of nodes with a parent-child relation.
Trees1 Part-C Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery.
General Trees. Tree Traversal Algorithms. Binary Trees. 2 CPSC 3200 University of Tennessee at Chattanooga – Summer 2013 © 2010 Goodrich, Tamassia.
Trees Chapter 8.
Trees.
Trees CSCI 3333 Data Structures. Acknowledgement  Dr. Bun Yue  Mr. Charles Moen  Dr. Wei Ding  Ms. Krishani Abeysekera  Dr. Michael Goodrich  Dr.
Chapter 7:Trees Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data Structures.
Saturday, 04 Apr 2010 University of Palestine Computer Science II Trees.
Trees. What is a Tree? In computer science, a tree is an abstract model of a hierarchical structure A tree consists of nodes with a parent- child relation.
Trees 4/23/2017 Trees.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Tree ADTs Tree concepts. Applications of Trees. A Tree ADT – requirements, contract. Linked implementation of Trees. Binary Tree ADTs. Binary Search.
COMP20010: Algorithms and Imperative Programming Lecture 1 Trees.
© 2004 Goodrich, Tamassia Trees1 Text Book: M. T. Goodrich and R. Tamassia, "Data Structures and Algorithms in Java," 4th edition, 2006, Wiley & Sons,
Trees by Dr. Bun Yue Professor of Computer Science CSCI 3333 Data Structures.
1 Binary Trees (7.3) CSE 2011 Winter November 2015.
Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery © 2010 Goodrich, Tamassia.
Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery © 2010 Goodrich, Tamassia.
Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery © 2013 Goodrich, Tamassia, Goldwasser.
M180: Data Structures & Algorithms in Java Trees & Binary Trees Arab Open University 1.
CH 7. TREES ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY.
24 January Trees CSE 2011 Winter Trees Linear access time of linked lists is prohibitive  Does there exist any simple data structure for.
CH 7 : TREE ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY.
Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery © 2010 Goodrich, Tamassia.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
© 2004 Goodrich, Tamassia Trees1 Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery.
TREE Ahsan Ahmed College of Computer and Information Science Majma’ah University 1.
1 COMP9024: Data Structures and Algorithms Week Five: Trees Hui Wu Session 1, 2015
What is a Tree? Formally, we define a tree T as a set of nodes storing elements such that the nodes have a parent-child relationship, that satisfies the.
Elementary Data Structures
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Trees 5/2/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Trees 5/10/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser,
Searching (and into Trees)
Lecture 1 (UNIT -4) TREE SUNIL KUMAR CIT-UPES.
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery Trees
University of Palestine
Trees 二○一八年八月二十六日 Part-C Trees Trees.
Trees Chuan-Ming Liu Computer Science & Information Engineering
© 2013 Goodrich, Tamassia, Goldwasser
Trees 9/21/2018 9:58 PM Trees this is a tree Trees.
COSC2100: Data Structures and Algorithms
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
Elementary Data Structures
Week nine-ten: Trees Trees.
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery Trees
Trees "A tree may grow a thousand feet tall, but its leaves will return to its roots." -Chinese Proverb CLRS, Section 10.4.
Trees Palestine Gaza West Bank 48 Stolen Land Trees Trees
Copyright © Aiman Hanna All rights reserved
CS210- Lecture 9 June 20, 2005 Announcements
EE Data Structures and Algorithms
Trees Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery
NATURE VIEW OF A TREE leaves branches root. NATURE VIEW OF A TREE leaves branches root.
Cs212: Data Structures Lecture 7: Tree_Part1
Presentation transcript:

Make Money Fast! Stock Fraud Apply shortcuts Bank Robbery Just For Laughs Trees This one is cool eITnotes.com For more notes and topics visit:

 Tree is one of the most important non-linear Data Structures in computing.  Tree structures are important because they allow us to implement a host of algorithms much faster than when using linear data structures, such as list.  Trees also provide a natural way to organize data in many areas such as:  File systems  Graphical User Interfaces (GUI)  Databases  Web Sites  and many other computer systems. eITnotes.com

Computers SalesR&D Manufacturing LaptopsDesktops INDIA International Europe Asia Canada Fig a tree representing the organization of a fictitious corporation eITnotes.com

 In computer science, a tree is an abstract model of a hierarchical structure, with some objects being “ above ” and some “ below ” others.  A tree consists of nodes with a parent-child relationship, rather than the simple “ before ” and “ after ” relationship, found between objects in sequential ( linear ) structures.  A famous example of hierarchical structure ( tree ) is the family tree.  Applications:  Organization charts  File systems  Programming environments eITnotes.com

 A tree T, is an abstract data type that stores elements hierarchically.  Except the top element ( root ), each element in a tree has a parent and zero or more children elements.  root : node without parent (Node A)  Internal node : node with at least one child (A, B, C, F)  External node ( leaf ): node without children (E, I, J, K, G, H, D)  Sibling nodes : Two nodes that are children of the same parent are Siblings. Depth of a node : number of its ancestors Height of a tree : maximum depth of any node Ancestors of a node : parent, grandparent, grand-grandparent, … etc. Descendants of a node : child, grandchild, grand- grandchild, … etc. Subtree : a tree consisting of a node and its descendants eITnotes.com

A B D C GH E F I J K subtree Fig.7.2 is an example of a tree T: T root is node A Internal (branch) nodes are nodes A, B, C, F External nodes ( leaves ) are nodes E, I, J, K, G, H, D Depth of node F is 2 Height of T is 3 Ancestors of node H are C and A Children of node A are B, C and D Nodes B, C and D are siblings Descendants of node B are E, F, I, J and K Fig. 7.2: Example of Tree eITnotes.com

Formally, we define a tree T as a finite set of nodes storing elements such that the nodes have a parent-child relationship, that satisfies the following properties:  If T is nonempty, it has a specially designated node, called the root of T, that has no parent.  Each node v of T other than the root has a unique parent node w.  Every node with parent w is a child of w. Note that a tree may be empty. eITnotes.com

 A tree is ordered if there is a linear ordering defined for the children of each node;  That’s, we can identify the children of a node as being the first, second, third, and so on.  Such an ordering is usually shown by arranging siblings left to right, according to their ordering.  Ordered trees typically indicate the linear order among siblings by listing them in the correct order.  A famous example of ordered trees is the family tree. eITnotes.com

 The tree ADT stores elements at positions, which are defined relative to neighboring positions.  Positions in a tree are its nodes, and the neighboring positions satisfy the parent-child relationships that define a valid tree.  Tree nodes may store arbitrary objects.  As with a list position, a position object for a tree supports the method: element() : that returns the object stored at this position (or node).  The tree ADT supports four types of methods, as follows. eITnotes.com

1. Accessor Methods We use positions to abstract nodes. The real power of node positions in a tree comes from the accessor methods of the tree ADT that return and accept positions, such as the following:  root(): Return the position of the tree’s root; an error occurs if the tree is empty.  parent(p): Return the position of the parent of p; an error occurs if p is the root.  children(p): Return an iterable collection containing the children of node p. eITnotes.com

2. Generic methods  size(): Return the number of nodes in the tree.  isEmpty(): Test whether the tree has any nodes or not.  positions(): Return an iterable collection of all the nodes of the tree. Methods of a Tree ADT (Cont.) eITnotes.com

3. Query methods In addition to the above fundamental accessor methods, the tree ADT also supports the following Boolean query methods: isInternal(p): Test whether node p is an internal node isExternal(p): Test whether node p is an external node isRoot(p): Test whether node p is the root node eITnotes.com

4. Update Method The tree ADT also supports the following update method:  replace(p, e): Replace with e and return the element stored at node p. eITnotes.com

 An array can be used to store a binary tree by using the following mathematical relationships:  if root data is stored at index n, then left child is stored at index 2*n and  right child is stored at index 2*n + 1  The figure demonstrates the storage representation: eITnotes.com

A natural way to implement a tree T is to use a linked structure, where we represent each node p of T by a position object with the following fields (see Figure):  A reference to the element stored at p.  A link to the parent of p.  A some kind of collection (e.g., a list or array) to store links to the children of p. element parent Children Collection Fig. 7.3 (a) Tree Node eITnotes.com

 A node is represented by an object storing  Element  Parent node  Sequence of children nodes  Node objects implement the Position ADT  B D A CE F B  ADF  C  E eITnotes.com

 Space Complexity The space used by the linked structure implementation of a general tree, T, of n-nodes is O(n).  Time Complexity The table shows the running times of methods of an n- nodes general tree. Cp denotes the number of children of node p. OperationTime size, isEmptyO(1) iterator, positionsO(n) replaceO(1) root, parentO(1) children(p)O( Cp ) isInternal, isExternal, isRoot O(1) eITnotes.com

 A traversal of a tree T is a systematic way of accessing, or “visiting” all the nodes of T, such that each node is visited once.  The specific action associated with the “visit” of a node v depends on the application of this traversal, for example:  Increment a counter,  Update content of v,  Perform some computation for v, … etc.  There are many types of tree traversals. eITnotes.com

 Visit each node before recursively visiting its children and descendants, from left to right (ordered tree). Root is visited first.  Each node is visited only once.  It takes O(n) time, where n is the number of nodes in tree, assuming that visiting a node takes O(1). That’s, preorder traversal is a linear time algorithm.  The preorder traversal is useful to get a linear ordering of nodes of a tree.  Application: It is a natural way to print the structure of directories, or print a structured document, e.g. content list. eITnotes.com

Make Money Fast! 1. MotivationsReferences2. Methods 2.1 Stock Fraud 2.2 Ponzi Scheme 1.1 Greed1.2 Avidity 2.3 Bank Robbery Algorithm preOrder(T,v) visit(v) for each child w of v in T do preOrder (T,w) //Recursion v W 1.Process the root node. 2.Traverse the left subtree in preorder. 3.Traverse the right subtree in preorder. eITnotes.com

 The postorder traversal can be viewed as the opposite of preorder traversal.  It recursively traverses the children of the root first, from left to right, after that, it visits the root node itself.  As with preorder, it gives a linear ordering of the nodes of an ordered tree.  The postorder traversal of a tree T with n nodes takes O(n) time, assuming that visiting each node takes O(1) time. That’s, postorder traversal is a linear time algorithm.  Application: compute disk space used by files in a directory and its subdirectories. eITnotes.com

1. Traverse the left subtree in postorder. 2. Traverse the right subtree in postorder. 3. Process the root node. Algorithm postOrder(T,v) for each child w of v in T do postOrder(T,w) visit(v) cs16/ homeworks/ todo.txt 1K programs/ DDR.java 10K Stocks.java 25K h1c.doc 3K h1nc.doc 2K Robot.java 20K eITnotes.com

in-order: (left, root, right) 3, 5, 6, 7, 10, 12, 13, 15, 16, 18, 20, 23 1.Traverse Left sub-tree in inorder. 2. Process the root node. 3. Traverse Right sub-tree in inorder. eITnotes.com

 A Binary tree is a tree with the following properties: 1. Every node has at most two children 2. Each child node is labeled as being either a left child or a right child. 3. A left child precedes a right child in the ordering of children of a node, (Children form an ordered pair).  A Binary tree is called proper if each node has either 0 or 2 children. (also, called full Binary tree) eITnotes.com

Recursive definition: a Binary tree is either:  a tree consisting of a single node, or  a tree whose root has an ordered pair of children, each of which is a Binary tree Applications: decision processes searching A B C FG D E H I eITnotes.com

 Binary tree associated with a decision process internal nodes: questions with yes/no answer external nodes: decisions  Example: dining decision Want a fast meal? How about coffee? Heavy meal Starbucks Go for teaHilton hotelsGo to home Yes No YesNoYesNo eITnotes.com

 A binary search tree (BST) is a binary tree that has the following property: For each node n of the tree, all values stored in its left subtree are less than value v stored in n, and all values stored in the right subtree are greater than v.  This definition excludes the case of duplicates. eITnotes.com

 The Binary Tree ADT extends the Tree ADT, i.e., it inherits all the methods of the Tree ADT,  Binary tree ADT supports the following additional accessor methods:  position left(p): return the left child of p, an error condition occurs if p has no left child.  position right(p): return the right child of p, an error condition occurs if p has no right child.  boolean hasLeft(p): test whether p has a left child  boolean hasRight(p): test whether p has a right child eITnotes.com

 Minimum number of nodes in a binary tree whose height is h, is h+1.  At least one node at each of the d levels. minimum number of nodes is h+1 eITnotes.com

Level 1 2 nodes Level 24 nodes Level 3 8 nodes Level 0 1 node eITnotes.com

A full Binary tree of a given height h has 2 h+1 – 1 nodes. Height 3 full Binary tree. eITnotes.com

1. Linked Structure 2. Array List eITnotes.com

 A node is represented by an object storing  Element  Parent node  Left child node  Right child node B D A CE   BADCE  eITnotes.com

 An array can be used to store a binary tree by using the following mathematical relationships:  if root data is stored at index n, then left child is stored at index 2*n and  right child is stored at index 2*n + 1  The figure demonstrates the storage representation: eITnotes.com