1、Top-K问题
Top-K问题即求大量数据中最大或最小的前K个数据,由于数据量较大,一般的方法都不可取,故使用堆的方式解决问题
(1)代码思路
以求前K个最大的数据为例,假设数据集合中有N个数据,首先用数据集合中前K个数据建小堆(若要求前K个最小的数据则建大堆),然后将剩余N-K个数据依次和堆顶数据做比较,若数据大于堆顶数据则入堆并调整,遍历完数据集合后,堆中的数据就是数据集合中前K个最大的元素。
(2)代码实现
2、实现链式结构二叉树
链式结构二叉树的节点由三个域组成,数据域和左右指针域,左右指针分别指向该节点的左孩子和右孩子,若无孩子,则指向NULL
(1)节点结构
(2)二叉树的遍历方式
先按照上图给出的二叉树模型,手动创建一棵二叉树:
①前序遍历
访问根节点的操作发生在遍历其左右子树之前
②中序遍历
访问根节点的操作发生在遍历其左右子树之间
③后序遍历
访问根节点的操作发生在遍历其左右子树之后