
二叉树
文章平均质量分 75
鼻里鼻里大学门卫
你看这小代码它平平无奇
展开
-
二叉树中的递归思想
按我的理解,递归的过程就是一个上楼梯加上下楼梯的过程(每一层台阶都是相同的,但是一级比一级高),在设计递归程序时,除了“台阶”之外,还要设计一个边界条件,在到达这个边界条件时,递归程序内部不会再向下递归(套娃),而是直接返回一个返回值,这个返回值又会成为其上一层递归的初始条件,这样就相当于开始一级一级的下楼梯。 1,前、中、后序遍历 以前序遍历为例,先访问根节点,然后是左节点,然后是右节点,并依此类推,访问全部的节点。由于在整个访问过程中的每一步,都遵循着上述的逻辑,因此这里就非常适合用递归思想来解决。原创 2022-01-17 21:54:49 · 2238 阅读 · 1 评论 -
数据结构-堆的插入和排序(向上调整+向下调整)
堆在本质上就是一个用数组实现的二叉树,而堆在排序方面又分为大堆和小堆,在大堆中,任何一个双亲结点都大于其孩子结点,小堆反之。 向上调整: 堆排序本身并不难,但问题在于向堆中插入一个节点时,由于该节点可能拥有任何值,因此该节点插入后,该堆可能就不符合原先大堆的特点了。这时就需要向上调整。对于新插入的孩子节点而言,假设其下标为child(child的值等于当前数组的长度-1),如何找到其双亲节点呢? 孩子节点和双亲节点的下标具有如下关系:parent=(child-1)/2。根据这一关系,就可以找到新插入原创 2022-01-16 21:26:21 · 1243 阅读 · 0 评论