Welcome to my crash course on Binary Trees which is one of the pivotal concepts in Advanced Data Structures and Algorithms!
In this course, we'll learn
1. What is Recursion? (Recursion is a prerequisite and a very useful tools to implement binary Trees)
2. Tricks to write recursive functions!
3. Tracing recursive functions
4. Converting an iterative solution to a recursive solution.
5. Basic Tree terminologies
6. Implementation of Binary Trees using LinkedLists
7. The basic traversal algorithms - How to code them?
8. Finding the height of the Tree - Algorithm, Code, Tracing.
9. How to find the Maximum and Minimum elements of a tree?
10. Finding the sum of all nodes in a tree
11. Level Order Traversal - Using Brute Force Approach and Improved Solution using Queue Data Structure.
12. Printing the left View of a Binary Tree
13. Printing the Right View of a Binary Tree
14. Understanding Hashmaps in C++ STL
15. Implementation of Vertical Order Traversals using Hashmaps
16. Printing all the leaf nodes of a Binary Tree using any one of the Traversal algorithms.
17. Printing the cousin nodes of a node in a Binary Tree.
18. Binary Search Trees - Explanation
Through these standard Tree problems, you'll easily be familiarized on implementing Trees in C or C++. Some ideas were also provided to implement the same using some other languages using Python too. So, if you're not comfortable in using C or C++, It's not a problem :)