美文网首页
孩子兄弟表示法-求树的度(各结点最大的孩子个数)

孩子兄弟表示法-求树的度(各结点最大的孩子个数)

作者: HungerDeng | 来源:发表于2018-10-10 17:31 被阅读0次
    /**********
    【题目】试编写算法,求一棵以孩子兄弟链表表示的树的度。
    孩子兄弟链表类型定义:
    typedef struct CSTNode {
      TElemType  data;
      struct CSTNode  *firstChild, *nextSibling;
    } CSTNode, *CSTree;
    **********/
    int Degree(CSTree T) /* 求树T的度 */
    {
        if(T==NULL) return 0;
        int i,j,max,tmp;  
        CSTree Q[100];//临时存放各结点   
        i=j=0;  
        max=-1;  
        if(T)  
        {  
            max=0;  
            Q[j++]=T->firstChild;
              
            while(i<j)//按层序遍历   
            {  
                tmp=0;  
                while(Q[i])  
                {  
                    tmp++;  
                    //存储有孩子的结点   
                    if(Q[i]->firstChild) Q[j++]=Q[i]->firstChild;
                    Q[i]=Q[i]->nextSibling;//统计本层结点数
                }  
                if(tmp>max) max=tmp;  
                i++;  
            }  
        }  
        return max;                  
    }
    
    

    相关文章

      网友评论

          本文标题:孩子兄弟表示法-求树的度(各结点最大的孩子个数)

          本文链接:https://www.haomeiwen.com/subject/qawyixtx.html