To go through the C program / source-code, scroll down this page
Binary Search Tree:
A tree is a connected, acyclic, unidirectional graph. It emulates a tree structure with a set of linked nodes. The topmost node in a tree is called the root node, node of a tree that has child nodes is called an internal node or inner node and the bottom most nodes are called a leaf node. The root is a node that has no parent; it can have only child nodes. Leaves, on the other hand, have no children. The simplest form of a tree is a Binary Tree which has a root node and two subtrees (which is a portion of a tree data structure that can be viewed as a complete tree in itself) - left and right. A Binary Search Tree is a binary tree in which if a node has value N, all values in its left sub-tree are less than N, and all values in its right sub-tree are greater than N. This property called binary search tree property holds for each and every node in the tree.
Basic operations of Binary Search tree are:
Finding a node with a specific data value.
Finding a node with minimum or maximum data value.
Insertion and deletion of a node.
Three (preorder, postorder and inorder) operations for depth-first traversal of a tree
a. Preorder:
Visit a node before traversing it’s sub-trees
b. Inorder:
Visit a node after traversing it’s left subtree but before traversing it’s right sub-tree
c. Postorder:
Visit a node after traversing all of it’s subtrees
Binary search tree has three properties: data stands for the value of the node, *left is the left subtree of a node and *right (a pointer of type struct treeNode) is the right subtree of a node.
Complete Tutorial with Examples :