{"id":23095311,"url":"https://github.com/micahondiwa/binary_trees","last_synced_at":"2025-08-22T00:04:38.183Z","repository":{"id":103531743,"uuid":"607984477","full_name":"micahondiwa/binary_trees","owner":"micahondiwa","description":"Implementing binary trees algorithm in C","archived":false,"fork":false,"pushed_at":"2023-03-05T21:30:46.000Z","size":136,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T07:35:43.497Z","etag":null,"topics":["algorithms","algorithms-and-data-structures","binary","binary-search","binary-search-tree","data-structures","insertion","malloc-free","search-algorithm","traversal"],"latest_commit_sha":null,"homepage":"https://github.com/micahondiwa/binary_trees","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micahondiwa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-01T04:19:06.000Z","updated_at":"2023-05-01T03:26:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a2ec299-4957-4148-97b9-bc8fecdd2814","html_url":"https://github.com/micahondiwa/binary_trees","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micahondiwa%2Fbinary_trees","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micahondiwa%2Fbinary_trees/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micahondiwa%2Fbinary_trees/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micahondiwa%2Fbinary_trees/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micahondiwa","download_url":"https://codeload.github.com/micahondiwa/binary_trees/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247064146,"owners_count":20877557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","algorithms-and-data-structures","binary","binary-search","binary-search-tree","data-structures","insertion","malloc-free","search-algorithm","traversal"],"created_at":"2024-12-16T22:21:39.953Z","updated_at":"2025-04-03T19:26:58.978Z","avatar_url":"https://github.com/micahondiwa.png","language":"C","readme":"# C-Binary trees\n\n# More pointers, arrays and strings\n\n- Projects done during my Full Stack Software Engineering studies at [ALX Africa](https://www.alxafrica.com/software-engineering-2022/), a course offered by [Holberton School](https://www.holbertonschool.com/).\n\n## Technologies\n- Files written in ```vi```, ```vim```, and ```emacs``` editors. \n- C files compiled using ```gcc 9.4.0```.\n- C files wriiten according to the betty coding style. Checked using [betty-style.pl](https://github.com/holbertonschool/Betty/blob/master/betty-style.pl) and [betty-doc.pl](https://github.com/holbertonschool/Betty/blob/master/betty-doc.pl).\n- Files tested on ```Ubuntu 20.04``` LTS using ```gcc```.\n\n## Files\n\n| File  | Question |\n|-------|----------|\n|[0-binary_tree_node.c](0-binary_tree_node.c)|Write a function that creates a binary tree node.|\n|[1-binary_tree_insert_left.c](1-binary_tree_insert_left.c)|Write a function that inserts a node as the left-child of another node.|\n|[2-binary_tree_insert_right.c](2-binary_tree_insert_right.c)|Write a function that inserts a node as the right-child of another node.|\n|[3-binary_tree_delete.c](3-binary_tree_delete.c)|Write a function that deletes an entire binary tree.|\n|[4-binary_tree_is_leaf.c](4-binary_tree_is_leaf.c)|Write a function that checks if a node is a leaf.|\n|[5-binary_tree_is_root.c](5-binary_tree_is_root.c)|Write a function that checks if a given node is a root.|\n|[6-binary_tree_preorder.c](6-binary_tree_preorder.c)|Write a function that goes through a binary tree using pre-order traversal.|\n|[7-binary_tree_inorder.c](7-binary_tree_inorder.c)|Write a function that goes through a binary tree using in-order traversal.|\n|[8-binary_tree_postorder.c](8-binary_tree_postorder.c)|Write a function that goes through a binary tree using post-order traversal.|\n|[9-binary_tree_height.c](9-binary_tree_height.c)|Write a function that measures the height of a binary tree.|\n|[10-binary_tree_depth.c](10-binary_tree_depth.c)|Write a function that measures the depth of a node in a binary tree.|\n|[11-binary_tree_size.c](11-binary_tree_size.c)|Write a function that measures the size of a binary tree.|\n|[12-binary_tree_leaves.c](12-binary_tree_leaves.c)|Write a function that counts the leaves in a binary tree.|\n|[13-binary_tree_nodes.c](13-binary_tree_nodes.c)|Write a function that counts the nodes with at least 1 child in a binary tree.|\n|[14-binary_tree_balance.c](14-binary_tree_balance.c)|Write a function that measures the balance factor of a binary tree.|\n|[15-binary_tree_is_full.c](15-binary_tree_is_full.c)|Write a function that checks if a binary tree is full.|\n|[16-binary_tree_is_perfect.c](16-binary_tree_is_perfect.c)|Write a function that checks if a binary tree is perfect.|\n|[17-binary_tree_sibling.c](17-binary_tree_sibling.c)|Write a function that finds the sibling of a node.|\n|[18-binary_tree_uncle.c](18-binary_tree_uncle.c)|Write a function that finds the uncle of a node.|\n|[100-binary_trees_ancestor.c](100-binary_trees_ancestor.c)|Write a function that finds the lowest common ancestor of two nodes.|\n|[101-binary_tree_levelorder.c](101-binary_tree_levelorder.c)|Write a function that goes through a binary tree using level-order traversal.|\n|[102-binary_tree_is_complete.c](102-binary_tree_is_complete.c)|Write a function that checks if a binary tree is complete.|\n|[103-binary_tree_rotate_left.c](103-binary_tree_rotate_left.c)|Write a function that performs a left-rotation on a binary tree.|\n|[104-binary_tree_rotate_right.c](104-binary_tree_rotate_right.c)|Write a function that performs a right-rotation on a binary tree.|\n|[110-binary_tree_is_bst.c](110-binary_tree_is_bst.c)|Write a function that checks if a binary tree is a valid [Binary Search Tree](https://en.wikipedia.org/wiki/Binary_search_tree).|\n|[111-bst_insert.c](111-bst_insert.c)|Write a function that inserts a value in a Binary Search Tree.|\n|[112-array_to_bst.c](112-array_to_bst.c)|Write a function that builds a Binary Search Tree from an array.|\n|[113-bst_search.c](113-bst_search.c)|Write a function that searches for a value in a Binary Search Tree.|\n|[114-bst_remove.c](114-bst_remove.c)|Write a function that removes a node from a Binary Search Tree.|\n|[115-O](115-O)|What are 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.|\n|[120-binary_tree_is_avl.c](120-binary_tree_is_avl.c)| Write a function that checks if a binary tree is a valid [AVL Tree](https://en.wikipedia.org/wiki/AVL_tree).|\n|[121-avl_insert.c](121-avl_insert.c)|Write a function that inserts a value in an AVL Tree.|\n|[122-array_to_avl.c](122-array_to_avl.c)|Write a function that builds an AVL tree from an array.|\n|[123-avl_remove.c](123-avl_remove.c)|Write a function that removes a node from an AVL tree.|\n|[124-sorted_array_to_avl.c](124-sorted_array_to_avl.c)|Write a function that builds an AVL tree from an array.|\n|[125-O](125-O)|What are the average time complexities of those operations on an AVL Tree (one answer per line): Inserting the value n, Removing the node with the value n, Searching for a node in an AVL tree of size n.|\n|[130-binary_tree_is_heap.c](130-binary_tree_is_heap.c)|Write a function that checks if a binary tree is a valid Max Binary Heap.|\n|[131-heap_insert.c](131-heap_insert.c)|Write a function that inserts a value in Max Binary Heap.|\n|[132-array_to_heap.c](132-array_to_heap.c)|Write a function that builds a Max Binary Heap tree from an array.|\n|[133-heap_extract.c](133-heap_extract.c)|Write a function that extracts the root node of a Max Binary Heap.|\n|[134-heap_to_sorted_array.c](134-heap_to_sorted_array.c)|Write a function that converts a Binary Max Heap to a sorted array of integers.|\n|[135-O](135-O)|What are the average time complexities of those operations on a Binary Heap (one answer per line): Inserting the value n, Extracting the root node, Searching for a node in a binary heap of size n.|\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicahondiwa%2Fbinary_trees","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicahondiwa%2Fbinary_trees","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicahondiwa%2Fbinary_trees/lists"}