堆(大顶堆,小顶堆),中序遍历,前序遍历,后续遍历序列

堆的概念:

  • 堆中某个节点的值总是不大于或不小于其父节点的值;
  • 堆总是一棵完全二叉树。

以百度的一个面试题为例:

  序列{9,12,17,30,50,20,60,65,4,19}构造为堆后,堆所对应的的中序遍历序列可能为

  A、65,12,30,50,9,19,20,4,,17,60
  B、65,12,30,9,50,19,4,20,17,60
  C、65,9,30,12,19,50,4,20,17,60
  D、65,12,9,30,50,4,20,9,17,60

一、序列构造成堆:

  堆构造原则:先固定已稳定的堆,再 安照从上到下,从左到右的原则堆积。

  小顶堆原理:每个结点的值都小于其左孩子和右孩子结点的值

                                          

                           

                            

              

             

              

         

  小顶堆映射的数组为 

大顶堆

  原理与小顶堆相似:每个结点的值都大于其左孩子和右孩子结点的值

        

  大顶堆映射的数组为 

  注:蓝色为稳定状态,橙色为新增未确定状态,红色为要调整状态

二、堆所对应的的中序遍历序列

   中序遍历:左中右     对构造成功的 小顶堆

       

              

        

        

      

    

       

 

 中序遍历遍历结果:

 答案选: B

先序遍历遍历结果:

后序遍历遍历结果:

原文地址:https://www.cnblogs.com/mww-NOTCOPY/p/12357402.html