計算二叉樹葉子節點及節點數量


void cc(TNode *t,int &n){  //計算節點數量 
    if(t!=NULL){
        n++;
        cc(t->lchild,n);
        cc(t->rchild,n);
    }
}

void leaf(TNode *t,int &n){   //葉子計算
    if(t!=NULL){
        if(t->lchild==NULL && t->rchild==NULL) n++;
        leaf(t->lchild,n);
        leaf(t->rchild,n);
    }
}

說明:在二叉樹的遞歸遍歷中,每個節點會且只會被訪問一次。在執行完當前的函數后,會返回上一層函數繼續執行未執行完的函數語句。也就是說,最先執行完整個函數的語句的是遞歸的最后一層。

調用:

int n=0;

leaf(t,n);

cc(t,n);


免責聲明!

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



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