C++Double pointer approach
A node can be inserted in a binary search tree using two approaches
void insert(BinaryTreeNode **node, int data) { if(*node == NULL) { *node = getNewNode(data); } if(data == (*node)->data) { //do nothing } else if(data < (*node)->data) { insert(&(*node)->left, data); } else { insert(&(*node)->right, data); } }
Single pointer approach
BinaryTreeNode* insert(BinaryTreeNode *node, int data) { if(node == NULL) { node = getNewNode(data); return node; } if(data == node->data) { //do nothing } else if(data < node->data) { node->left = insert(node->left, data); } else { node->right = insert(node->right, data); } return node; }
Java
Java has only references which are synonymous to single pointers in C/C++. Inserting a node in java is achieved using the approach below. This is same as single pointer approach mentioned above
private BinaryTreeNode insert(BinaryTreeNode node, int data) { if(node == null) { node = new BinaryTreeNode(data); return node; } if(node.data == data) { //do nothing } else if(data < node.data) { node.left = insert(node.left, data); } else { node.right = insert(node.right, data);; } return node; }
No comments :
Post a Comment