예제 #1
0
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);
    }
}
예제 #2
0
/* 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;
}