10.23

学数据结构里的二叉树时,一开始总觉得它比线性结构绕得多。线性结构比如链表、数组,元素都是一条线串起来的,顺着走就行,可二叉树是分叉的,每个节点能有左右两个孩子,一下子就觉得 “立体” 起来了,理解起来也费了点劲。
最开始卡壳的是二叉树的各种遍历方式。明明是同一棵树,换种遍历顺序,得到的序列就完全不一样。总记不清前序、中序、后序到底是先看根还是先看孩子,后来慢慢琢磨出规律:关键就在 “根” 的位置,前序是根在前,中序是根在中间,后序是根在最后,剩下的都是先左后右。理清楚这个逻辑后,再画着树一步步推,才慢慢顺过来。
二叉树的结构特性也很有意思,比如它的深度、节点数之间的关系,还有满二叉树、完全二叉树这些特殊形态,看着定义挺抽象,多画几棵树对比着看,就发现其中的规律了。像是完全二叉树,节点的排列特别 “规整”,缺的节点只能在最后一层的右边,这种约束反而让它的性质更明确,计算起来也有固定的方法。
学习的时候还发现,二叉树的难点不在单个节点的操作,而在整体的递归逻辑上。很多操作比如查找、插入,用递归写起来特别简洁,可刚开始总转不过弯,不知道递归怎么一步步深入到左右子树里。后来试着把大问题拆成 “处理根节点” 和 “处理左右子树” 两部分,慢慢就理解了这种 “分而治之” 的思路 —— 原来复杂的树操作,说到底也是在重复处理相似的子问题。
现在回头看,二叉树虽然结构上比线性结构复杂,但它的逻辑很严谨,每种操作都有明确的规则。关键是得先把树的形态和遍历逻辑吃透,再理解递归在其中的应用,慢慢就能摸到门道。这部分内容也让我明白,数据结构里的 “结构” 决定了操作方式,搞懂结构的特性,才能真正掌握对应的算法。

posted @ 2025-10-23 22:51  姜乐融  阅读(5)  评论(0)    收藏  举报