Binary trees Project files
Project goals knowledge about: 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.
0-binary_tree_node.c A function that creates a binary tree node.
1-binary_tree_insert_left.c A function that inserts a node as the left-child of another node.
2-binary_tree_insert_right.c A function that inserts a node as the right-child of another node.
3-binary_tree_delete.c A function that deletes an entire binary tree.
4-binary_tree_is_leaf.c A function that checks if a node is a leaf.
5-binary_tree_is_root.c A function that checks if a given node is a root.
6-binary_tree_preorder.c A function that goes through a binary tree using post-order traversal.
7-binary_tree_inorder.c A function that goes through a binary tree using in-order traversal.
8-binary_tree_postorder.c A function that goes through a binary tree using post-order traversal.
9-binary_tree_height.c A function that measures the height of a binary tree.
10-binary_tree_depth.c A function that measures the depth of a node in a binary tree. 11-binary_tree_size.c A function that measures the size of a binary tree.
12-binary_tree_leaves.c A function that counts the leaves in a binary tree.
13-binary_tree_nodes.c A function that counts the nodes with at least 1 child in a binary tree
14-binary_tree_balance.c A function that measures the balance factor of a binary tree.
15-binary_tree_is_full.c A function that checks if a binary tree is full.
16-binary_tree_is_perfect.c A function that checks if a binary tree is perfect.
17-binary_tree_sibling.c A function that finds the sibling of a node.
18-binary_tree_uncle.c A function that finds the uncle of a node.
100-binary_trees_ancestor.c Afunction that finds the lowest common ancestor of two nodes.
101-binary_tree_levelorder.c A function that goes through a binary tree using level-order traversal.
102-binary_tree_is_complete.c A function that checks if a binary tree is complete.
103-binary_tree_rotate_left.c A function that performs a left-rotation on a binary tree.
104-binary_tree_rotate_right.c A function that performs a right-rotation on a binary tree.
110-binary_tree_is_bst.c A function that checks if a binary tree is a valid Binary Search Tree.
111-bst_insert.c A function that inserts a value in a Binary Search Tree.
112-array_to_bst.c A function that builds a Binary Search Tree from an array.
113-bst_search.c A function that searches for a value in a Binary Search Tree.
114-bst_remove.c A function that removes a node from a Binary Search Tree.
115-O Congains the average time complexities of those operations on a Binary Search Tree (one answer per line):
Inserting the value n. Removing the node with the value n. Searching for a node in a BST of size n.
120-binary_tree_is_avl.c A function that checks if a binary tree is a valid AVL Tree.
121-avl_insert.c A function that inserts a value in an AVL Tree.
122-array_to_avl.c A function that builds an AVL tree from an array.
123-avl_remove.c A function that removes a node from an AVL tree.
124-sorted_array_to_avl.c A function that builds an AVL tree from an array.
125-O Contains the average time complexities of those operations on an AVL Tree: Inserting the value n. Removing the node with the value n. Searching for a node in an AVL tree of size n.
130-binary_tree_is_heap.c A function that checks if a binary tree is a valid Max Binary Heap.
131-heap_insert.c Afunction that inserts a value in Max Binary Heap.
132-array_to_heap.c A function that builds a Max Binary Heap tree from an array.
133-heap_extract.c A function that extracts the root node of a Max Binary Heap
134-heap_to_sorted_array.c A function that converts a Binary Max Heap to a sorted array of integers.
135-O The average time complexities of those operations on a Binary Heap: Inserting the value n Extracting the root node Searching for a node in a binary heap of size n