Project: 0x1D. C - Binary trees

General
- 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

Tasks

  • 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 pre-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