Skip to content

Binary tree data structure and algorithms project completed for Holberton School

Notifications You must be signed in to change notification settings

nihadamirov/holbertonschool-binary_trees

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Binary Trees

Learning Objectives

  • 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

Requirements

  • Allowed editors: vi, vim, emacs
  • All your files will be compiled on Ubuntu 20.04 LTS using gcc, using the options -Wall -Werror -Wextra -pedantic -std=gnu89
  • The prototypes of all your functions should be included in your header file called binary_trees.h

Functions

  • binary_tree_node, creates a binary tree node
  • binary_tree_insert_left, function that inserts a node as the left-child of another node
  • binary_tree_insert_right, function that inserts a node as the right-child of another node
  • binary_tree_delete, function that deletes an entire binary tree
  • binary_tree_is_leaf, function that checks if a node is a leaf
  • binary_tree_is_root, function that checks if a given node is a root
  • binary_tree_preorder, function that goes through a binary tree using pre-order traversal
  • binary_tree_inorder, function that goes through a binary tree using in-order traversal
  • binary_tree_postorder, function that goes through a binary tree using post-order traversal
  • binary_tree_height, function that measures the height of a binary tree
  • binary_tree_depth, function that measures the depth of a node in a binary tree
  • binary_tree_size, function that measures the size of a binary tree
  • binary_tree_leaves, function that counts the leaves in a binary tree
  • binary_tree_nodes, function that counts the nodes with at least 1 child in a binary tree
  • binary_tree_balance, function that measures the balance factor of a binary tree
  • binary_tree_is_full, function that checks if a binary tree is full
  • binary_tree_is_perfect, function that checks if a binary tree is perfect
  • binary_tree_sibling, function that finds the sibling of a node
  • binary_tree_uncle, function that finds the uncle of a node

👥 Team

👨‍💻 Nihad Amirov nihadamirov

👨‍💻 Rafig Mammadov rafigmammadov