1. 程式人生 > >編寫求任意二叉樹中一條最長的路徑的演算法,要求輸出此路徑上各結點的值及路徑的長度。

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

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); } } 深度就是長度,下面的函式要呼叫上面的函式