(出处:http://www.cnblogs.com/linguanh/)
前序:
堆是基础数据结构中二叉树的一种,它还是笔试和面试题的常客。本文旨在通俗地的简介下堆的一些知识,附加一道爱奇艺笔试题,相信我,绝对通俗易懂!!!!!。
堆定义及其分类:
堆是基础数据结构中二叉树的一种,堆不一定是完全二叉树但是一般采用完全二叉树,主要是利于存储和运算,堆分三种,下面我用图片直观地显示出来。
无序堆转为小根或大根:
这类要求一半出现在笔试选择题,注意:无序堆调整为最小根堆或者最大根堆的最终结果,是会因调整过程中的顺序不同而不同的,我的建议是,从最底层开始调整,一直往上,再往下,直至调整完毕。下面我通过一个例子以图片方式来进行讲解。
爱奇艺笔试题:
解题思路:已告知是最小堆,那么我们不用再自己转,先建好堆,如无特殊要求,那么按照完全二叉树的格式建好堆,然后在最后插入元素,然后调整堆。