zoukankan      html  css  js  c++  java
  • 如何判断一颗二叉树为完全二叉树

    基本思想:

    (1)若跟节点非空,则入队。

    (2)让p指向队列的对头,若p为NULL,则遍历队列的所有元素,如果出现非空值则返回false,否则返回true

    (3)若P非空,则将p的左右孩子入队,然后将P出队(这个地方可以在获取p的时候进行出队也行,另外入队的节点不论空与否都会进入

    (4)重复步骤(2)(3)直到队列为空

    (5)结束

    算法

     1 bool ComBinTree(BinTree BT){
     2     Queue Q;
     3     if(BT!=NULL)
     4         EnQueue(Q,BT);
     5      while(!isEmptyQueue(Q)){
     6          BinTree p=DeQueue(Q);
     7         if(p==NULL){
     8             while(!isEmptyQueue(Q)){
     9                  if(DeQueue(Q)!=NULL)
    10                      return false; 
    11             }
    12             return true;
    13         }else{
    14             EnQueue(Q,p->lchild);
    15             EnQueue(Q,p->rchild);
    16         }
    17      }
    18      return false;
    19 }
  • 相关阅读:
    angularjs $index用来取顺序
    angularjs &登录跳转
    if(!confirm("您确定删除吗?")){return;}
    登录跳转
    undefined null测试
    git生成密钥
    遍历map
    网络相关名词解释
    redis的Pub/Sub
    SQLAlchemy的使用
  • 原文地址:https://www.cnblogs.com/GoAhead/p/2514981.html
Copyright © 2011-2022 走看看