Coder Social home page Coder Social logo

perfectbinarytree's Introduction

Implementation of a PerfectBinaryTree (PBT) Data Structure from scratch:

PerfectBinaryTree.hpp:

This header file is collection of Interfaces to solve problems with PBT DS.

Note: A Binary Tree is Perfect, if all Internal Nodes have 2 Children and all Leaf Nodes are at the same Level.

main.cpp:

TheNumberOfNodes is the number of Nodes that will be encapsulated in this->PerfectBinaryTree Object.

TODO: Only accept input n if n belongs to A = {3, 7, 15, 31, 63, ..., log(n-1)}.

maxl is maximum level of the BT.

maxl = log2(n+1) , assume n = 31 = log2(31+1) = log2(32) = 5 Thus for n = 31, the maximum level of this PerfectBinaryTree is 5

TreeNode.hpp:

n TreeNode Objects are used to create this->PBT.

TODO: Make the nodes bidirectional (use doubly Linked list nodes).

PerfectBinaryTree.cpp:

The PBT object has members for traversing purpose inside itself.

- DFS(Depth First Search) Traversal Algorithms are all implemented in recursive fashion:

1- PreorderTraversal

2- InorderTraversal

3- PostorderTraversal

- BFS(Breadth First Search) Traversal Algorithms are implemented using queue DS:

1- LevelByLevelTraversal: Returns a vector of nodes visited from left to right

2- LevelorderTraversal: Returns a vector separated by its level

so we can get the Level of the tree by : vec.size()

Run the program in command line:

$ g++ main.cpp PerfectBinaryTree.cpp -o main

./main

perfectbinarytree's People

Contributors

amirmasp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.