Algorithm 是什么使树按顺序或按顺序遍历?
为什么通过根、左、右遍历树称为预排序?因为根总是第一位的,这不应该是正确的吗Algorithm 是什么使树按顺序或按顺序遍历?,algorithm,binary-tree,binary-search-tree,tree-traversal,Algorithm,Binary Tree,Binary Search Tree,Tree Traversal,为什么通过根、左、右遍历树称为预排序?因为根总是第一位的,这不应该是正确的吗 我不明白为什么这样叫它,因为根元素总是第一个元素。我们总是有一个限制,那就是访问左边的子元素要先于访问右边的子元素 主要区别在于根在哪里 如果根在两个子项之前,我们称之为前序。(根,左,右) 如果根在两个子项之后,我们称之为后序。(左、右、根) 如果根在两个子元素之间,我们称之为有序。(左、根、右) 当应放置根节点的内容时,前缀指的是 给定此树,您可以用多种方式表示它: 预排序:根放在第一位(然后是左和右子项),
我不明白为什么这样叫它,因为根元素总是第一个元素。我们总是有一个限制,那就是访问左边的子元素要先于访问右边的子元素 主要区别在于根在哪里
- 如果根在两个子项之前,我们称之为前序。(根,左,右)
- 如果根在两个子项之后,我们称之为后序。(左、右、根)
- 如果根在两个子元素之间,我们称之为有序。(左、根、右)
- 预排序:根放在第一位(然后是左和右子项),因此列表如下所示:
- 按顺序:首先放置左子对象(如果愿意,请进行分析),然后放置根和右子对象。它将如下所示:
- 后序:首先分析左子项,然后分析右
此外,还可以使用其他可能的遍历
- 按级别:元素在树上按级别从左到右排列
考虑一下这个简单的树:
A
/ \
B C
预顺序遍历:ABC
术语包含单词pre
<代码>前表示之前。所以根在它的任何子元素之前。请注意,A
位于B
和C
后序遍历:BCA
术语包含单词post
<代码>发布表示发布后。所以根是在它的任何一个孩子之后。请注意,A
位于B
和C
顺序遍历:BAC
术语包含中的单词
<代码>内
表示内部(中间)。所以根在它的子代中间。注意<代码> a <代码>介于代码> b>代码>和<代码> c>代码> < /p>搜索名称的前缀是按代码集<代码>(右、根、左)< /代码>的顺序的根的位置-<代码> >当“根”在中间(不在(=前)或后(=后))@ Drror应该是<代码>(左、根、右)<代码>?你是正确的——重要的是根在中间。
[11, 20, 29, 32, 41, 50, 65, 72, 91, 99]
-------------- | ------------------
| | |
| | |------- Right sub-tree
| |
| |---- Root of the tree
|
|----- Left sub-tree
[11, 32, 29, 20, 50, 72, 99, 91, 65, 41]
-------------- ------------------ |
| | |---- Root of the tree
| |
| |----- Right sub-tree
|
|------ Left sub-tree
[41, 20, 65, 11, 29, 50, 91, 32, 72, 99]
| ------ -------------- ----------
| | | |-----Level 3
| | |
| | |----- Level 2
| |
| |------ Level 1
|
|----- Level 0 (aka, the root of the tree)
A
/ \
B C