当年学这些的时候真的是苦于没有人讲,现在复习考研,我会见到这种题就写下来,学弟学妹们欢迎点个关注,最近也在创业想实习的可以找我联系;没看懂的话是我表述有问题,欢迎指出和私戳。
Among the following threaded binary trees (the threads are represented by dotted curves), which one is the postorder threaded tree?
答案
B(见下图)
分析
线索二叉树(threaded )的目的和使用方法,想详细了解的可以看看csdn上面很多的文章,这里我只说这类选择题怎么写:
线索二叉树,就是你想想,我们建树的时候,每个节点是有两个指针(指向一左一右)的,N个节点,也就是2N个指针,但是实际上不是Null的只有N-1个,因为除了根都有一个指向这个节点,还有N+1个指针没有用,线索二叉树就是为了让这N+1个节点有用,指向的就是你的排序方式给出后,那个线性排列的“前驱”和“后驱”,左指针指向前驱,右指针指向后驱。
所以你会发现,下面的指针一共2N个线,N-1(3)个实线是原指针,N+1(5)个虚线是新的线索。
下面这个树,后序排序是:dbca
前驱就是前面的,比如b的前驱是d, d的前驱是Null
后驱就是后面的,比如d的后驱是b,a的后驱是Null
d有两个指针没有用,左边指向前驱Null,右边指向b(然后就选出来B了)
b的右节点有用的(已经指向d了),左节点指向其前驱,也就是d
c前驱是b,后驱是a,所以左指向b,右指向a
a没有指针可用了(已经左为b右为c)了
所以选B。
没截图截全,不过反正D也是错的。