Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
C++ Data Structures and Algorithms

You're reading from  C++ Data Structures and Algorithms

Product type Book
Published in Apr 2018
Publisher Packt
ISBN-13 9781788835213
Pages 322 pages
Edition 1st Edition
Languages
Author (1):
Wisnu Anggoro Wisnu Anggoro
Profile icon Wisnu Anggoro

Table of Contents (16) Chapters

Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
1. Learning Data Structures and Algorithms in C++ 2. Storing Data in Lists and Linked Lists 3. Constructing Stacks and Queues 4. Arranging Data Elements Using a Sorting Algorithm 5. Finding out an Element Using Searching Algorithms 6. Dealing with the String Data Type 7. Building a Hierarchical Tree Structure 8. Associating a Value to a Key in a Hash Table 9. Implementation of Algorithms in Real Life 1. Other Books You May Enjoy Index

Building a balanced BST (AVL) ADT


As we discussed earlier in the Building a binary search tree ADT section, it's possible to have a skewed tree (either left or right) and cause the time complexity of several operations to become slow for O(h), where h is the height of the tree. In this section, we are going to discuss a balanced binary search tree to ensure that we won't get a skewed tree. There are several implementations needed to create a balanced BST. However, we will only focus on the AVL tree, which was invented by Adelson-Velskii and Landis in 1962, and is named after the inventors.

To make a balanced BST, we have to know the height of each node in the tree. So, we need to modify the BSTNode class by adding a new property named Height, as follows:

class BSTNode
{
public:
    int Key;
    BSTNode * Left;
    BSTNode * Right;
    BSTNode * Parent;
int Height;
};

This new property is used to track the height of each node. We will also create a new method to fetch the height of a node, which...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime}