Data structures 3

505 views
405 views

Published on

Published in: Engineering, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
505
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Data structures 3

  1. 1. CS1301 Data Structures
  2. 2. Unit III Non LINEAR DATA STRUCTURE  Preliminaries  Binary Tree  The Search Tree ADT  Binary Search Tree  AVL Tree  Tree Traversals  Hashing - General Idea  Hash Function  Separate Chaining  OpenAddressing  Linear Probing  Priority Queue (Heaps) - Model - Simple Implementations  Binary Heap
  3. 3. Trees • Finite set of one or more nodes that there is a specially designated node called root and zero or more non empty sub trees T1, T2,.. each of whose roots are connected by a directed edge from Root R • A tree T is a set of nodes storing elements such that the nodes have a parent-child relationship that satisfies the following – if T is not empty, T has a special tree called the root that has no parent – each node v of T different than the root has a unique parent node w; each node with parent w is a child of w
  4. 4. Trees
  5. 5. Trees • Root : node which doesn’t have a parent • Node : Item of information • Leaf/ terminal : node which doesn’t have children • Siblings : children of same parents • Path : sequence of nodes n1,n2,n3,….,nk such that ni is parent of ni+1 for 1<= i<k. there is exactly only one path from each node to root; path from A to L is A,C,F,L • Length : no. of edges on the path ; length of A to L is 3 • Degree : number of subtrees of a node; A -> 4, C- >2 degree of tree is maximum no.of any node in the tree ; degree of tree is 4
  6. 6. Trees • Level : initially letting the root be at level one, if a node is at level L then its children are at level L + 1 – Level of A is 1; Level of B, C, D is 2; Level of F,G,H,I,J is 3, Level of K,L,M is 4 • Depth : For any node n, the depth of n is the unique path from root to n – Depth of root is 0; Depth of L is 3 • Height : For any node n, the height of the node is the length of the longest path from n to the leaf
  7. 7. CHAPTER 5 7 Level and Depth K L E F B G C M H I J D A Level 1 2 3 4 node (13) degree of a node leaf (terminal) nonterminal parent children sibling degree of a tree (3) ancestor level of a node 3 2 1 3 2 0 0 1 0 0 0 0 0 1 2 2 2 3 3 3 3 3 3 4 4 4
  8. 8. Trees • Binary Tree –Tree in which no node can have more than two children
  9. 9. Trees • Binary Tree Node Declaration Struct Treenode { int element; Struct Treenode *Left; Struct TreeNode *Right; };
  10. 10. Trees • Binary Tree –Comparison between general tree & Binary Tree General Tree Binary Tree Has any no. of children Has not more than two children
  11. 11. Trees • Full Binary Tree – Full binary tree of h has 2^h+1 -1 nodes
  12. 12. Trees • Complete Binary Tree – A complete binary tree is a binary tree, which is completely filled, with the possible exception of the bottom level, which is filled from left to right – A full binary tree can be a complete binary tree, but all complete binary tree is not a full binary tree
  13. 13. Trees • Representation of Binary Tree –Two ways • Linear Representation • Linked Representation
  14. 14. Trees • Linear Representation of Binary Tree – Elements are represented using arrays – For any element in position i, the left child is in position 2i, right child is in position (2i+1) and parent in position (i/2)
  15. 15. Trees • Linked Representation of Binary Tree – Elements are represented using pointers – Each node in linked representation has two fields • Pointer to left subtree • Data field • Pointer to right subtree – In leaf node, both pointer fields are assigned as NULL
  16. 16. Trees • Expression Tree – Is a binary tree – Leaf nodes are operands and interior nodes are operators – Expression tree be traversed by inorder , preorder, postorder traversal
  17. 17. Trees • Constructing an Expression Tree 1. Read one symbol at a time from postfix expression 2. Check whether symbol is an operand or operator 1. If operand, create a one –node tree and push a pointer on to the stack 2. If operator, pop two pointers from the stack namely T1 and T2 and form a new tree with root as the operator and T2 as a left child and T1 as a right child. A pointer to this new tree is pushed onto the stack
  18. 18. Trees • Example
  19. 19. Trees • Example
  20. 20. Trees • Binary Search Tree –Is a binary tree –For every node x in the tree, value of all the keys in its left subtree are smaller than the value X and value of all the keys in the right subtree are larger than the value X
  21. 21. Trees • Binary Search Tree –Every binary search tree is a binary tree –All binary tree need not be bnary search tree
  22. 22. Trees • Declaration Routine for Binary Search Tree
  23. 23. Trees • Routine for Make an empty tree
  24. 24. Trees • Insertion
  25. 25. Trees • Insertion - Example
  26. 26. Trees • Insertion - Example
  27. 27. Trees • Routine for Insertion
  28. 28. Trees • Find
  29. 29. Trees • Find – Example to find 10
  30. 30. Trees • Find – Example to find 10
  31. 31. Trees • Routine for Find
  32. 32. Trees • Find Minimum –Returns position of the smallest element in a tree –Start at the root and go left as long as there is a left child, the stopping point will be the smallest element
  33. 33. Trees • Find Minimum – example
  34. 34. Trees • Find Minimum – Recursive routine
  35. 35. Trees • Find Minimum – Non Recursive routine
  36. 36. Trees • Find Maximum –Returns the largest element in the tree –To perform, start at the root and go right as long as there is a right child –Stopping point is the largest element
  37. 37. Trees • Find Maximum - Example
  38. 38. Trees • Find Maximum – Recursive Routine
  39. 39. Trees • Find Maximum – Non Recursive Routine
  40. 40. Trees • Deletion –Complex in BST –To delete an element, consider the following 3 possibilities • Node to be deleted is a leaf node • Node with one child • Node with two children
  41. 41. Trees • Deletion – Node to be deleted is a leaf node
  42. 42. Trees • Deletion • Node with one child : deleted by adjusting its parent pointer that points to its child node
  43. 43. Trees • Deletion • Node with two children : to replace the data of node to be deleted with its smallest data of right subtree and recursively delete that node
  44. 44. Trees • Deletion • Node with two children
  45. 45. Trees • Deletion • Node with two children
  46. 46. Trees • Deletion • Node with two children
  47. 47. Trees • Deletion • Node with two children
  48. 48. Trees • Deletion • Node with two children
  49. 49. Trees • Deletion • Node with two children
  50. 50. Trees • Deletion Routine
  51. 51. Trees • Deletion Routine
  52. 52. Trees • AVL Tree (Adelson - Velskill and Landis) –Binary search tree except that for every node in the tree, the height of left and right subtrees can differ by atmost 1 –Balance factor is the height of left subtree minus height of right subtree; -1, 0, or +1 –If Balance factor is less than or greater than 1, the tree has to be balanced by making single or double rotations
  53. 53. Trees • AVL Tree (Adelson Velskill and Landis)
  54. 54. Trees • AVL Tree (Adelson Velskill and Landis)
  55. 55. Trees • AVL Tree (Adelson Velskill and Landis) – AVL tree causes imbalance, when anyone of the following conditions occur • An insertion into the left subtree of the left child of node • An insertion into the right subtree of the left child of node • An insertion into the left subtree of the right child of node • An insertion into the right subtree of the right child of node Imbalances can overcome by 1. Single rotation 2. Double rotation
  56. 56. Trees • AVL Tree (Adelson Velskill and Landis) • Single rotation – Performed to fix case1 and case 4 Case 1: An insertion into the left subtree of the left child of node
  57. 57. Trees • AVL Tree (Adelson Velskill and Landis) • Single rotation – Performed to fix case1 and case 4 Case 1: An insertion into the left subtree of the left child of node

×