学习数据结构(12)Top-K问题+二叉树链式结构上

1、Top-K问题

Top-K问题即求大量数据中最大或最小的前K个数据,由于数据量较大,一般的方法都不可取,故使用堆的方式解决问题

(1)代码思路

以求前K个最大的数据为例,假设数据集合中有N个数据,首先用数据集合中前K个数据建小堆(若要求前K个最小的数据则建大堆),然后将剩余N-K个数据依次和堆顶数据做比较,若数据大于堆顶数据则入堆并调整,遍历完数据集合后,堆中的数据就是数据集合中前K个最大的元素。

(2)代码实现

2、实现链式结构二叉树

链式结构二叉树的节点由三个域组成,数据域和左右指针域,左右指针分别指向该节点的左孩子和右孩子,若无孩子,则指向NULL

(1)节点结构

(2)二叉树的遍历方式

先按照上图给出的二叉树模型,手动创建一棵二叉树:

①前序遍历

访问根节点的操作发生在遍历其左右子树之前

②中序遍历

访问根节点的操作发生在遍历其左右子树之间

③后序遍历

访问根节点的操作发生在遍历其左右子树之后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值