问题描述
我了解树木和树木的遍历,但是,我很难知道现实示例中正在使用哪种树木遍历。
例如,我们是否使用预先遍历遍历计算机上的文件系统? 而我们通常什么时候使用其中一个?
解决方法
如果您具有二叉搜索树,则可以使用有序遍历来按排序顺序显示数据结构中包含的元素。通常按顺序查看事物很有用。因此,如果该树具有三个节点,即根节点A和子节点B和C,并且它是二叉搜索树,则需要:
B,A,C
如果您的文件系统具有包含文件夹和文件的文件夹,则可以将此结构视为分层目录结构。执行此操作时,实际上是希望在目录中访问该文件夹之前先访问该文件夹,因此可以将文件夹对齐到其内容的左侧。与上面解释为目录结构的同一棵树可能应该这样看:
A
+- B
+- C
对于后遍历来说,不会想到很多例子,但是可以做的就是反向抛光符号。如果您要制作计算器并将算术表达式存储在一棵树中,则可以对该树进行后遍历,以反抛光表示法获得一系列术语,并使用一种已知的使用反向表达式的表达式求值算法波兰语表示法。因此,如果我们不是A,B和C,而是有+,3和4,那么我们可能更愿意看到类似
的字符串3 4 +
一种算法会将其解释为“ pop 3 pop 4 pop +,push 3 + 4”。这样的事情。