Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Lists and Trees (continued) CS-2301 System Programming D-term 2009 (Slides include materials from The C Programming Language, 2nd edition, by Kernighan and Ritchie and from C: How to Program, 5th and 6th editions, by Deitel and Deitel) CS-2301 D-term 2009 Lists and Trees (continued) 1 Definitions • Linked List • A data structure in which each element is dynamically allocated and in which elements point to each other to define a linear relationship • Singly- or doubly-linked • Stack, queue, circular list • Tree • A data structure in which each element is dynamically allocated and in which each element has more than one potential successor • Defines a partial order CS-2301 D-term 2009 Lists and Trees (continued) 2 Definitions (continued) • Binary Tree • A tree in which each element has two potential successors • Subtree • The set of nodes that are successors to a specific node, either directly or indirectly • Root of a tree • The node of the tree that is not the successor to any other node, all other nodes are (directly or indirectly) successors to it CS-2301 D-term 2009 Lists and Trees (continued) 3 Binary Tree • A linked list but with two links per item struct treeItem { type payload; treeItem *left; treeItem *right; }; payload left payload left payload payload left left right payload right left payload left right right right CS-2301 D-term 2009 Lists and Trees (continued) 4 right payload left right Binary Trees (continued) • Two-dimensional data structure • Easy to grow and shrink • Easy to add and delete items at leaves • More work needed to insert or delete branch nodes • Search time is O(log n) • If tree is reasonably balanced • Degenerates to O(n) in worst case if unbalanced CS-2301 D-term 2009 Lists and Trees (continued) 5 Order of Traversing Binary Trees • In-order • Traverse left sub-tree (in-order) • Visit node itself • Traverse right sub-tree (in-order) • Pre-order • Visit node first • Traverse left sub-tree • Traverse right sub-tree • Post-order • Traverse left sub-tree • Traverse right sub-tree • Visit node last CS-2301 D-term 2009 Lists and Trees (continued) 6 Question • Which order should Programming Assignment #6 traverses its tree? CS-2301 D-term 2009 Lists and Trees (continued) 7 “Big O” notation New Topic CS-2301 D-term 2009 Lists and Trees (continued) 8 Linked Lists Again • Linear data structure • Easy to grow and shrink • Easy to add and delete items • Time to search for an item – O(n) CS-2301 D-term 2009 Lists and Trees (continued) 9 Binary Trees Again • Non-linear data structure • Easy to grow and shrink • Easy to add and delete items • Time to search for an item – O(log n) CS-2301 D-term 2009 Lists and Trees (continued) 10 Definition — Big-O “Of the order of …” • A characterization of the number of operations in an algorithm in terms of a mathematical function of the number of data items involved • O(n) means that the number of operations to complete the algorithm is proportional to n • E.g., searching a list with n items requires, on average, n/2 comparisons with payloads CS-2301 D-term 2009 Lists and Trees (continued) 11 Big-O (continued) • • • • • O(n): proportional to n – i.e., linear O(n2): proportional to n2 – i.e., quadratic O(kn) – proportional to kn – i.e., exponential … O(log n) – proportional to log n – i.e., sublinear • O(n log n) • Worse than O(n), better than O(n2) • O(1) – independent of n; i.e., constant CS-2301 D-term 2009 Lists and Trees (continued) 12 Anecdote & Questions:– • In the design of electronic adders, what is the order of the carry-propagation? • What is the order of floating point divide? • What is the order of floating point square root? • What program have we studied in this course that is O(2n)? i.e., exponential? CS-2301 D-term 2009 Lists and Trees (continued) 13 Questions on Big-O? CS-2301 D-term 2009 Lists and Trees (continued) 14