在二叉搜索树的inorder遍历中查找给定数据的位置

时间:2015-08-21 12:55:40

标签: algorithm data-structures tree binary-search-tree inorder

我在二进制搜索树的有序遍历中搜索数据的位置(索引号)。

void inorder(struct node *root) {    
  if(!root)
      return NULL;
  inorder(root->left);
  cout<<root->data;
  inorder(root->right);
}

如何修改此函数以获取给定数字的位置。

1 个答案:

答案 0 :(得分:0)

您可以通过引用传递一个整数并在函数中增加它:

void inorder(struct node *root, int &position){    
    if(!root)
        return NULL;
    inorder(root->left, position);
    position++;
    cout<<position<<": "<<root->data;
    inorder(root->right, position);
}