Algorithm 数字搜索树是如何工作的?
我尝试了许多在线资源,但我无法理解数字二进制搜索树是如何工作的。下面的链接是供您参考的示例 (链接:) 有没有人用这些值构建一棵树,并详细说明它是如何工作的Algorithm 数字搜索树是如何工作的?,algorithm,data-structures,tree,binary-search-tree,Algorithm,Data Structures,Tree,Binary Search Tree,我尝试了许多在线资源,但我无法理解数字二进制搜索树是如何工作的。下面的链接是供您参考的示例 (链接:) 有没有人用这些值构建一棵树,并详细说明它是如何工作的 A 00001 S 10011 E 00101 R 10010 C 00011 H 10100 树的构造方式使得可以使用键的二进制表示法(a,S,E,R,C,H)将它们定位到树中。在每个搜索步骤中,将键与curren节点(当前搜索的根)进行比较。如果键不是根,则键二进制表示的最高有效位用于选择左子树(如果位为0)或
A 00001
S 10011
E 00101
R 10010
C 00011
H 10100
树的构造方式使得可以使用键的二进制表示法(
a
,S
,E
,R
,C
,H
)将它们定位到树中。在每个搜索步骤中,将键与curren节点(当前搜索的根)进行比较。如果键不是根,则键二进制表示的最高有效位用于选择左子树(如果位为0
)或右子树(如果位为1
)。将更详细地解释此过程
在您提供的示例中,键H
(二进制表示法10100
)如下所示
A
。由于A
不等于H
,因此使用位1
,表示应选择正确的子树。因此,我们考虑了节点<代码> S/COD>和位串<代码> 0100 > /COD>这是由于原始二进制表示省略了最高有效位。A
不等于H
,因此我们使用最高有效位,即0
,表示选择左子树。我们考虑节点<代码> R>代码>位串<代码> 100 <代码> < < /P> R
不等于H
,我们再次使用最高有效位,即1
,这意味着要选择正确的子树。我们考虑节点<代码> h <代码>和位串<代码> 00 < /C> > H
等于H
,我们找到了所需的键,搜索终止DST的工作原理类似于逐级检查位。如果o然后向左或向右移动,则检查位的起始位置。同时,它将位位置与电平进行比较 例如:
根处于O级别
- 如果要插入的位在第1级,则检查第1位
- 如果为0,则插入为左;如果为1,则插入为右李>
[DST][1]:来自您自己的链接:该解释的哪一部分不清楚?我现在理解了搜索是如何工作的,但仍然不清楚:当我们使用位101遍历元素H(10100)的树,然后匹配其他两位(00),然后找到元素H,但当我们将元素插入到树中时,我们能自己制作数字序列吗?使用reference:cseweb.ucsd.edu/~kube/cls/100/touchts/lec15/lec15-10.htmltanks作为回复我现在了解了搜索是如何工作的,但仍然不清楚:当我们使用位101遍历元素H(10100)的树,然后匹配其他两位(00),然后找到元素H,但当我们将元素插入到树中时,我们能自己制作数字序列吗?使用参考:从描述中不太清楚。我猜这些键的二进制序列必须是相同长度和不同的;插入显然是以相同的方式遍历树(
0
表示分支到左子级,1
表示分支到右子级),直到找到插入键的null
引用。