论坛: 编程破解 标题: 数据结构二叉树问题,各位大哥请指教。 复制本贴地址    
作者: jilian [jilian]    论坛用户   登录
怎样求二叉树的宽度,我想了一晚上,没想清楚,请各位大哥请指教。

地主 发表时间: 10/15 08:38

回复: 286 [unique]   版主   登录
二叉树有宽度吗?宽度是如何定义的?


B1层 发表时间: 10/15 09:57

回复: jilian [jilian]   论坛用户   登录
宽度:指二叉树的各层上,具有结点数最多的的那一层的结点数。有一个习提这样定义的。以二叉链表为存储结构。

B2层 发表时间: 10/15 10:59

回复: 286 [unique]   版主   登录
这个简单。
==========================================
int num[20]=0;//假设最深有20层。

main()
{
    tree *tpt;
    //创建树。
    int maxdepth=0;
    width(tpt,0);//遍例树。

    for (int i=0;i<20;i++)
        if (num[i]>maxdepth)
                  maxdepth=num[i];
    printf("Its width is :%d",maxdepth); 
}
width(tree *t,int dep)
{
  if (t.left!=NULL)
        width(t.left,dep+1);
  num[dep]++;
  if (t.right!=NULL)
        width(t.right,dep+1);
}

B3层 发表时间: 10/15 13:03

回复: jilian [jilian]   论坛用户   登录
收到,谢谢老大。
努力学习ing.

B4层 发表时间: 10/15 17:44

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号