zoukankan      html  css  js  c++  java
  • 堆(大顶堆,小顶堆),中序遍历,前序遍历,后续遍历序列

    堆的概念:

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

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

      序列{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

    先序遍历遍历结果:

    后序遍历遍历结果:

  • 相关阅读:
    骨灰级程序员20条编程经验
    js常用正则表达式
    css样式大全(整理版)
    ASP.NET中常用的26个优化性能方法
    C# 中的委托和事件
    Page的ResolveClientUrl与ResolveUrl读取路径
    层设定固定高度,内容超过高度,自动延伸
    Catalan数(卡塔兰数)
    称球问题
    zabbix分布式监控系统安装配置
  • 原文地址:https://www.cnblogs.com/mww-NOTCOPY/p/12357402.html
Copyright © 2011-2022 走看看