void inOrder(PTreeNode pTreeNode) { if (pTreeNode == NULL) { return; } // Find first node in in-order while (pTreeNode->left != NULL) { pTreeNode = pTreeNode->left; } while (pTreeNode != NULL) { printf("%s ", pTreeNode->data.word); pTreeNode = inOrderSuccessor(pTreeNode); } }
/* Driver program to test above functions*/ int main() { struct node* root = NULL, *temp, *succ, *min; //creating the tree given in the above diagram root = insert(root, 20); root = insert(root, 8); root = insert(root, 22); root = insert(root, 4); root = insert(root, 12); root = insert(root, 10); root = insert(root, 14); temp = root->left->right->right; succ = inOrderSuccessor(root, temp); if(succ != NULL) printf("\n Inorder Successor of %d is %d ", temp->data, succ->data); else printf("\n Inorder Successor doesn't exit"); getchar(); return 0; }