Definition
A tree is a data structure that is commonly used in computer science to store and organize data in a hierarchical manner. At the top of the tree is a root node, which branches out into multiple child nodes. Each child node can then have its own child nodes, creating a tree-like structure.
Special directed/undirected graph with N nodes and N-1 edges.
Each node is can be reached from other nodes by some path.
No cycles.
Directed when you can only go from parent to child.
public class TreeNode {
private int value;
List<TreeNode> children;
}
- Usually tree problems are asked for binary tree.
Binary Tree
- It is a hierarchical structure consisting of nodes, where each node has at most two children. The children of a node are referred to as the left child and the right child.
public class BinaryTreeNode {
private int data;
private BinaryTreeNode left;
private BinaryTreeNode right;
public BinaryTreeNode(int data) {
this.data = data;
this.left = null;
this.right = null;
}
public int getData() {
return this.data;
}
public void setData(int data) {
this.data = data;
}
public BinaryTreeNode getLeft() {
return this.left;
}
public void setLeft(BinaryTreeNode left) {
this.left = left;
}
public BinaryTreeNode getRight() {
return this.right;
}
public void setRight(BinaryTreeNode right) {
this.right = right;
}
}
Special binary trees
Complete binary tree.
Full binary tree.
No of nodes in a full binary tree
Height of full binary tree - log (number of nodes)
2^H - 1 = total nodes
H = log (total nodes)
Binary search tree (Explained in another blog)
Balanced binary tree (AVL , Red black)
Operations on Binary Tree or detailed explanation of Binary and Binary Search Tree will be in next blog. Keep in touch.
So this is it for this article. I hope it helped you somewhere. Don't forget to support us and share with other geekians.
Thank you, Have a nice day !!