![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树与堆的相关问题
文章平均质量分 94
明 日 香
快和我一起快乐学习
展开
-
树与二叉树堆:经典OJ题集(2)
题目:给你一个二叉树的根节点root, 检查它是否轴对称。解题思路:按照图例来看,若想判断一个二叉树是否是图中的样子,那么需要将将二叉树分为两个部分,也就说将一棵二叉树当成两个部分,除去根结点,对左右子树部分进行相对应的比较。也就说将左子树部分的左孩子和右子树部分的右孩子进行比较和左子树的右孩子和右子树的左孩子进行比较,将比较分为两个部分进行。所以本题是将二叉树分为两个子树,而又将两颗子树的左右孩子进行分开配对比较。原创 2023-12-03 19:29:41 · 726 阅读 · 47 评论 -
树与二叉树堆:经典OJ题集(1)
查找值为x的结点,可以转变为查找结点以及结点的左右孩子结点的元素是否等于x,而左右孩子结点也有它们的左右孩子,于是最后就将问题化解成了查看当前结点的值是否等于x。根据二叉树的结构划分和等值传递原理,本问题可以化解为根结点是否和左右孩子结点有相等的元素,而左右孩子也具有它们自己的左右孩子结点。需要注意的是,有一些结点是只有左孩子结点的,没有右孩子结点,遇到这种情况,也就是当root==NULL时,返回的是true。所以到最后本问题就变成了查看根结点是否等于左孩子结点的元素,是否等于右孩子结点的元素。原创 2023-11-30 21:45:16 · 327 阅读 · 32 评论 -
树与二叉树堆:堆的意义
如果排升序建立小堆,我们可以一开始获取最小的数字,但是我们下一步呢,如果找第二小的数字?如果要找第二个最小的数字,如果在当前这个堆的基础上找,那么关系全乱了,因为要在兄弟之间,要在父亲的兄弟之间,父亲的兄弟的孩子之间找这时候只能重新建一个堆,但是建堆的代价是时间复杂度的重复性。所以,使用大堆来解决堆排序的升序问题! 根据,堆删除的一种思想,交换!根结点元素和尾结点元素的交换,以大堆的父结点元素比子结点元素大的特点,最后一个结点的元素是堆的最小值,而根结点的元素是堆的最大值,当二者进行交换后,最小值跑到了根结原创 2023-11-29 21:13:42 · 675 阅读 · 24 评论 -
树与二叉树堆:链式二叉树的实现
链式二叉树的实现主要服务于那些不能被数组存储的非满二叉树和非完全二叉树,而在这些二叉树中,我们又将它们的组成结构进行拆分,分别是根、左子树、右子树。而左子树和右子树又可以根据该结构划分为它们的根、左子树、右子树。原创 2023-11-29 21:03:51 · 391 阅读 · 19 评论 -
树与二叉树堆:堆
一般是把数组的数据在逻辑结构上看成一颗完全二叉树。原创 2023-11-21 22:47:16 · 272 阅读 · 32 评论