Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 06: Tree Structures Topics: Trees in general Binary Search Trees Application: Huffman Coding Other types of Trees.

Similar presentations


Presentation on theme: "Lecture 06: Tree Structures Topics: Trees in general Binary Search Trees Application: Huffman Coding Other types of Trees."— Presentation transcript:

1 Lecture 06: Tree Structures Topics: Trees in general Binary Search Trees Application: Huffman Coding Other types of Trees

2 Part I. Trees Linked Lists – add [in-order]: O(n) – remove: O(n) – find: O(n) Trees: – add [in-order]: O(log n) to O(n) – remove: O(log n) to O(n) – find: O(log n) to O(n) Try it for these values of n: 4, 8, 1000, 1000000

3 Basic Idea and terminology K-ary tree. This is a 3-ary tree depth. The number of nodes above and including a node. depth(bottom- left)=4, depth(bottom-right)=3 Child: a node which is immediately reachable from a node. Descendent: a node which can be reached from a node (regardless of depth) Sibling. Nodes at the same level. There are 3 siblings all descendent from the root. Leaf Node: A node without children Interior Node: A node with at least one child.

4 More terminology Each node is a subtree. Full tree: all nodes have 0 or k children. Perfect Tree: a full tree in which all leaves are at the same depth – Very desirable. – Minimizes depth (makes all operations faster) Complete tree: the depth of all ancestors differs by at most one. Degenerate Tree: The opposite of a perfect tree – Really a… – …linked list (that's why the worst case O-speed is O(n))

5 Part II: Binary Search Trees A 2-ary tree – 2 children. Usually called left and right. Often represents sorted data – All children and ancestors in the left branch are less than (or equal) to this node. – All children and ancestors in the right branch are greater than (or equal) to this node.

6 Operations [Insertions] – [8, 4, 12, 5, 1, 11, 99] – [1, 4, 5, 11, 8, 12, 99] [Finding] – How many operations to find the 99 in both trees? [Removing] – With no children – With 1 child – With 2 children Finding the minimum value in the right sub-tree. Finding the maximum value in the left sub-tree. Traversal: Depth-First Search – Pre-order, In-order, Post-order [Try to code at least some of it]

7 Part III: Huffman Coding Reference: http://en.wikipedia.org/wiki/Huffman_coding http://en.wikipedia.org/wiki/Huffman_coding ASCII encoding of characters Frequency distribution Huffman Algorithm – Developed by David Huffman for PhD thesis at MIT (1952)

8 Part IV: Other types of Trees B+ Trees – Each node is (small) array of values – Siblings point to the next sibling – Used for indexing in Databases (Access, MySQL, Oracle, etc) – Used in many filesystems (NTFS for one) Red-Black Tree – Self-balancing tree (much more complex insertions and removals) => guaranteed an O(log n) access time. – Applications: computational geometry (Maya, Blender) some process schedulers in Linux Used in some implementation of STL maps (like python dictionaries) …


Download ppt "Lecture 06: Tree Structures Topics: Trees in general Binary Search Trees Application: Huffman Coding Other types of Trees."

Similar presentations


Ads by Google