- 博客(3)
- 收藏
- 关注
原创 数据结构——二叉树线索化
根据某种遍历序列(前、中后序遍历),先确定下来每个节点的前驱和后继。对于每个节点来说,他的左右指针可能没有指向节点(值为NULL),这时候我们可以运用这些“空闲”的指针。比如:左指针如果有空闲,就用这个指针指向这个节点对应遍历序列的前驱,右指针如果有空闲,就用这个指针指向这个节点对应遍历序列的后继。(注意:遍历序列中一头一尾是没有前驱或者后继的,所以如果指针有空闲,我们还是当它指向的是孩子,而不是前驱或者后继)对于每个节点都实现了步骤2后,线索化完成。
2023-08-13 09:07:29
2776
3
原创 数据结构——二叉树的遍历
是因为我们下面的else里面是关于从右边返回之后就要遍历根节点的代码,下面的条件含有flag == node->right,而且我们没有从右边返回的时候未必上一次访问的节点就是node的左孩子节点,因为返回之后可能会向右再一路向左,不知道跑到哪里去了,但是从右边返回之后,上一次访问的节点必然是右孩子节点,这一点读者可以尝试一下两种写法最终调试结果的区别。中序遍历和先序遍历不同,他并不是走到某个节点就会对其访问,“左根右”的顺序决定了,遍历时会”一路向左“,一直去优先遍历左子树,左子树的左子树……
2023-08-06 12:28:45
163
原创 数据结构——树的存储
在树中,除了根节点之外,每个节点必然会对应它的唯一一个父亲,借助这个特性,我们可以通过将每个节点与它的父亲建立联系,来在线性结构中将树中各个节点的非线性关系保存下来。
2023-07-21 15:29:46
934
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人