设为首页 加入收藏

TOP

数据结构-二叉树的遍历(二)
2015-07-24 10:32:33 来源: 作者: 【 】 浏览:3
Tags:数据结构
TNode *stack[MAX_STACK_SIZE] ,*p=T; int top=0, num=0; if (T!=NULL) { stack[++top]=p ; while (top>0) { p=stack[top--] ; if (p->Lchild==NULL&&p->Rchild==NULL) num++ ; if (p->Rchild!=NULL ) stack[++top]=p->Rchild; if (p->Lchild!=NULL ) stack[++top]=p->Lchild; } } return(num) ; }

求二叉树的深度

3 求二叉树的深度
利用层次遍历算法可以直接求得二叉树的深度。
算法实现:

#define  MAX_NODE  50
int    BiTreedepth( BTNode  *T)
{  BTNode  * Queue[MAX_NODE] ,*p=T;
int  front=0 , rear=0, depth=0, level ;
/*  level总是指向访问层的最后一个结点在队列的位置  */
if  (T!=NULL)
{  Queue[++rear]=p;    /*   根结点入队  */
level=rear ;    /*  根是第1层的最后一个节点  */
while (frontLchild!=NULL)
               Queue[++rear]=p;    /*   左结点入队  */
         if (p->Rchild!=NULL)
               Queue[++rear]=p;    /*   左结点入队  */
          if (front==level)  
             /*  正访问的是当前层的最后一个结点  */
             {  depth++ ;  level=rear ;  }
      }
}
}

求深度的递归算法

/* 初始条件: 二叉树T存在。操作结果: 返回T的深度 */
int BiTreeDepth(BiTree T)
{
    int i,j;
    if(!T)  return 0;
    if(T->lchild)   
         i=BiTreeDepth(T->lchild);
    else  i=0;
    if(T->rchild)
        j=BiTreeDepth(T->rchild);
    else  j=0;
    return i>j?i+1:j+1;
}
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据结构-树和二叉树 下一篇修改phpmyadmin中的默认超时时间

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)
·MySQL下载与安装教程 (2025-12-26 13:21:26)
·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)