2010-03-08 127 views
2

我试图向非计算机科学专业的学生解释很多问题。二叉树遍历抽象

(1)什么遍历树?它仅仅是逻辑或实际关断开关产生1s和0s行走电路板?这棵树和节点在哪里存在CPU /内存之间? (2)如果它是1s和0s电路如何理解线,例如p = p.getLeft();

我说搜索google或wiki。

+0

有没有即时的方法来挖掘计算的电气和半导体基础以及该语言和高级语言编译器之间的所有抽象层次!但是,您可能会在已出版的书籍中找到最佳的总体概述,这篇书籍已经过编辑过程,如“电脑工作原理”http://www.amazon.com/gp/product/0789736136/ – HostileFork 2010-03-08 21:49:00

+0

+1,teh funneh ! – hop 2010-03-08 21:49:11

回答

2

树是一种抽象,我们把它放在可以在任何地方(在CPU的寄存器,在CPU的缓存中,在内存中等)的0和1的序列的特定集合之上。这种遍历是一系列CPU指令,封装了遍历树所必需的逻辑。

至于电路如何理解行p = p.getLeft();,编译器已经完成了将该指令转译为CPU理解并执行的必要机器指令的工作。

老实说,最好在这里抽象地思考。如果您想了解二叉树遍历,请考虑这个抽象层次。如果您想了解计算机在0和1级别的工作方式,请忘记二叉树并学习计算机体系结构。

最后要说明的是,0和1也是真正机制的抽象。

+0

嗯,我会说有很多层之间的抽象,不要忘了JVM,JIT,OS预传的可执行文件,内存管理... 如果那个学生真的感兴趣,试着给他带来汇编程序甚至一些注册表指令代码。 – 2010-03-08 21:45:01

+0

@GabrielŠčerbák:不要忘记,即使是“x86汇编”,例如在今天的Core 2 Duo以及Intel和AMD CPU等等也是另一个抽象层。现代CPU实际上更像是RISC,它具有一个黑客抽象层,因此他们或多或少地像他们的祖先一样“工作”。因此,我们的每个“汇编CISC指令”通常都会翻译成几条RISC指令,但几乎没有人知道这一点,并且认为当前的CPU是CISC,尽管它们只是*编程为CISC *,但它们不是。 – SyntaxT3rr0r 2010-03-08 23:32:32

+0

是的,我听说过,实际上微编程使它更加有趣... CS是关于抽象 – 2010-03-08 23:51:56