編寫求任意二叉樹中一條最長的路徑的算法,要求輸出此路徑上各結點的值及路徑的長度。


int Depth(BiTree T)/* 深度 */
{
    if(T==NULL)
        return(0);
    return 1+(Depth(T->lchild)>Depth(T->rchild)? Depth(T->lchild):Depth(T->rchild));
//選擇左右孩子深度高的然后加上根節點這一層就是深度了
}
void Long(BiTree T)
{
    if(T!=NULL)//在T不為空的情況下
    {
        visit(T->data);//訪問節點
        if(Depth(T->lchild)>Depth(T->rchild))//判斷往左走還是往右走
            Long(T->lchild);
        else
            Long(T->rchild);
    }
}
深度就是長度,下面的函數要調用上面的函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM