C is a powerful general-purpose programming language. It can be used to develop software like operating systems, databases, compilers, and so on. This projects covers the concepts of binary trees! This was a project done with the contribution of my peer in many other SWE projects Jorge Zafra Kudos!
At the end of this project, We were able to undesrtand these questions:
- What is a binary tree
- What is the difference between a binary tree and a Binary Search Tree
- What is the possible gain in terms of time complexity compared to linked lists
- What are the depth, the height, the size of a binary tree
- What are the different traversal methods to go through a binary tree
- What is a complete, a full, a perfect, a balanced binary tree
- Function that creates a binary tree node
- Function that inserts a node as the left-child of another node
- Function that inserts a node as the right-child of another node
- Function that deletes an entire binary tree
- Function that checks if a node is a leaf
- Function that checks if a given node is a root
- Function that goes through a binary tree using pre-order traversal
- Function that goes through a binary tree using in-order traversal
- Function that goes through a binary tree using post-order traversal
- Function that measures the height of a binary tree
- Function that measures the depth of a node in a binary tree
- Function that measures the size of a binary tree
- Function that counts the leaves in a binary tree
- Function that counts the nodes with at least 1 child in a binary tree
- Function that measures the balance factor of a binary tree
- Function that checks if a binary tree is full
- Function that checks if a binary tree is perfect
- Function that finds the sibling of a node
- Function that finds the uncle of a node
- Function that finds the lowest common ancestor of two nodes
- Function that goes through a binary tree using level-order traversal
- Function that checks if a binary tree is complete
- Function that performs a left-rotation on a binary tree
- Function that performs a right-rotation on a binary tree
- Function that checks if a binary tree is a valid Binary Search Tree
- Function that inserts a value in a Binary Search Tree
- Function that builds a Binary Search Tree from an array
- Function that searches for a value in a Binary Search Tree
- Function that removes a node from a Binary Search Tree
- What are the average time complexities of those operations on a Binary Search Tree
- Function that checks if a binary tree is a valid AVL Tree
- Function that inserts a value in an AVL Tree
- Function that builds an AVL tree from an array
- Function that removes a node from an AVL tree
- Function that builds an AVL tree from an array
- What are the average time complexities of those operations on an AVL Tree
- Function that checks if a binary tree is a valid Max Binary Heap (Task in progress)
- Function that inserts a value in Max Binary Heap (Task in progress)
- Function that builds a Max Binary Heap tree from an array (Task in progress)
- Function that extracts the root node of a Max Binary Heap (Task in progress)
- Function that converts a Binary Max Heap to a sorted array of integers (Task in progress)
- What are the average time complexities of those operations on a Binary Heap
- GLIBC 2.24
- gcc 4.8.4
- betty linter 0.32
- Valgrind
SORRY, DESPITE THE PROJECT IS FUNCTIONAL FOR EDUCATIONAL PURPOSES FOR YOU TO LEARN I AM NOT LEAVING IT AVAILABLE FOR TEST