Java 处理;“钥匙”;在二叉搜索树中

Java 处理;“钥匙”;在二叉搜索树中,java,binary-tree,binary-search-tree,Java,Binary Tree,Binary Search Tree,在处理二进制搜索树时,是否应该始终使用一些数据作为键值?我问这个是因为我在某个时候需要钥匙 如果我想搜索树中的元素。还有其他选择吗 例如,请考虑以下代码: 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 }

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

例如,请考虑以下代码:

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

}
我的第二个问题:

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

  • 我不明白你为什么总是需要钥匙。您可以使用
    double fData
    作为用于确定哪个节点更大/更小的值(如果您的需求合适的话)
  • 我相信二进制搜索树是一种元素有序的二叉树。因此,二叉树上的节点不一定是有序的。因此,您仍然可以在二叉树上找到元素,但您必须扫描整个节点。您将失去BST的性能优势

  • 谢谢你的回答!