Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. template <typename Type>
  2. void AVLTree<Type>::InsertAVLItem(typename BSTree<Type>::BinTree& node, const Type& value, std::stack<typename BSTree<Type>::BinTree> nodes)
  3. {
  4. if(node == 0)
  5. {
  6. node = make_node(value);
  7. node->balance_factor = 0;
  8.  
  9. if(node->balance_factor < -1 || node->balance_factor > 1)
  10. BalanceAVLTree(nodes);
  11. }
  12. else if(value < node->data)
  13. {
  14. nodes.push(node);
  15. InsertAVLItem(node->left, value, nodes);
  16. node->balance_factor = tree_height(node->left) - tree_height(node->right);
  17. }
  18. else if(value > node->data)
  19. {
  20. nodes.push(node);
  21. InsertAVLItem(node->right, value, nodes);
  22. node->balance_factor = tree_height(node->left) - tree_height(node->right);
  23. }
  24. else
  25. throw(BSTException(BSTException::E_DUPLICATE, "insert_item: Duplicate value"));
  26.  
  27.  
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement