Skip to content

Instantly share code, notes, and snippets.

@junddao
Last active October 4, 2022 05:19
Show Gist options
  • Save junddao/f908d0567ace5a37b0c0e52b223df0fa to your computer and use it in GitHub Desktop.
Save junddao/f908d0567ace5a37b0c0e52b223df0fa to your computer and use it in GitHub Desktop.
Binary Search Tree
/*
* 1
* / \
* 2 3
* / \
* 4 5
*
* inorder (left, root, right) : 4 2 5 1 3
* preorder (root, left, right) : 1 2 4 5 3
* postorder (left, right, root) : 4 5 2 3 1
*
*
*
*
*
*
* */
void main () {
Tree t = Tree();
Node? n4 = t.makeNode(null, 4, null);
Node? n5 = t.makeNode(null, 5, null);
Node? n2 = t.makeNode(n4, 2, n5);
Node? n3 = t.makeNode(null, 3, null);
Node? n1 = t.makeNode(n2, 1, n3);
t.root = n1;
t.inorder(t.root);
// t.preorder(t.root);
// t.postorder(t.root);
}
class Node{
int? data;
Node? left;
Node? right;
}
class Tree{
Node? root;
Node? makeNode(Node? left, int data, Node? right){
Node? node = Node();
node.data = data;
node.left = left;
node.right = right;
return node;
}
void inorder(Node? node){
if(node != null){
inorder(node.left);
print(node.data);
inorder(node.right);
}
}
void preorder(Node? node){
if(node != null){
print(node.data);
preorder(node.left);
preorder(node.right);
}
}
void postorder(Node? node){
if(node != null){
postorder(node.left);
postorder(node.right);
print(node.data);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment