https://github.com/nickssilver/binary_trees
A project about Binary Trees in C and other tree-type data structures.
https://github.com/nickssilver/binary_trees
algorithm c data-structure
Last synced: 9 months ago
JSON representation
A project about Binary Trees in C and other tree-type data structures.
- Host: GitHub
- URL: https://github.com/nickssilver/binary_trees
- Owner: nickssilver
- Created: 2022-12-15T17:10:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-15T18:15:54.000Z (almost 3 years ago)
- Last Synced: 2025-01-22T03:17:43.014Z (11 months ago)
- Topics: algorithm, c, data-structure
- Language: C
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 0x1D. C - Binary trees
## Description
A binary tree is a data structure that is made up of nodes. Each node has at most two children, which are referred to as the left child and the right child. A binary tree can be used to store data in a hierarchical manner, allowing for efficient insertion, deletion, and search operations. Binary trees are commonly used in computer science for a variety of tasks, such as storing data in a sorted order, implementing efficient search algorithms, and more.
## 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
## Usage
* All files were created and compiled on Ubuntu 20.04 LTS on gcc 4.8.4 \
using the flags -Wall -Werror -Wextra and -pedantic
* All files were linted for syntax and style with [Betty](https://github.com/holbertonschool/Betty)
## Table of contents
Files | Description
----- | -----------
[0-binary_tree_node.c](./0-binary_tree_node.c) | C function that creates a binary tree node
[1-binary_tree_insert_left.c](./1-binary_tree_insert_left.c) | C function that inserts a node as the left-child of another node
[2-binary_tree_insert_right.c](./2-binary_tree_insert_right.c) | C function that inserts a node as the right-child of another node
[3-binary_tree_delete.c](./3-binary_tree_delete.c) | C function that deletes an entire binary tree
[4-binary_tree_is_leaf.c](./4-binary_tree_is_leaf.c) | C function that checks if a node is a leaf
[5-binary_tree_is_root.c](./5-binary_tree_is_root.c) | C function that checks if a given node is a root
[6-binary_tree_preorder.c](./6-binary_tree_preorder.c) | C function that goes through a binary tree using pre-order traversal
[7-binary_tree_inorder.c](./7-binary_tree_inorder.c) | C function that goes through a binary tree using in-order traversal
[8-binary_tree_postorder.c](./8-binary_tree_postorder.c) | C function that goes through a binary tree using post-order traversal
[9-binary_tree_height.c](./9-binary_tree_height.c) | C function that measures the height of a binary tree
[10-binary_tree_depth.c](./10-binary_tree_depth.c) | C function that measures the depth of a node in a binary tree
[11-binary_tree_size.c](./11-binary_tree_size.c) | C function that measures the size of a binary tree
[12-binary_tree_leaves.c](./12-binary_tree_leaves.c) | C function that counts the leaves in a binary tree
[13-binary_tree_nodes.c](./13-binary_tree_nodes.c) | C function that counts the nodes with at least 1 child in a binary tree
[14-binary_tree_balance.c](./14-binary_tree_balance.c) | C function that measures the balance factor of a binary tree
[15-binary_tree_is_full.c](./15-binary_tree_is_full.c) | C function that checks if a binary tree is full
[16-binary_tree_is_perfect.c](./16-binary_tree_is_perfect.c) | C function that checks if a binary tree is perfect
[17-binary_tree_sibling.c](./17-binary_tree_sibling.c) | C function that finds the sibling of a node
[18-binary_tree_uncle.c](./18-binary_tree_uncle.c) | C function that finds the uncle of a node
### Authors
* [Nicks](https://github.com/nickssilver) - [@_pronicks](https://twitter.com/_pronicks)