2

在处理二叉搜索树时,我是否应该始终使用一些数据作为键值?我问这个是因为如果我想在树中搜索一个元素,我会在某个时间点需要 key。还有其他选择吗?

例如,请考虑以下代码:

class Node {

int iData;   // data used as key value
double fData; // other data

Node leftChild; // this node's left child

Node rightChild; // this node's right child

}

我的第二个问题:

有什么方法可以在二叉树中找到元素,因为二叉树没有任何属性,就像二叉搜索树一样,父节点的左节点必须小于父节点,右节点必须更大。

4

1 回答 1

3
  1. 我不明白为什么你总是需要钥匙。您可以将double fData其用作确定哪个节点更大/更小(如果您的要求适合)的值。
  2. 我相信二叉搜索树是一个二叉树,其中元素是有序的。因此,二叉树上的节点不一定是有序的。所以是的,你仍然可以在二叉树上找到元素——但你必须扫描整个节点。您失去了 BST 的性能优势
于 2013-04-29T00:35:22.440 回答