7-4 輸出一棵給定二叉樹的所有葉子節點
阿新 • • 發佈:2019-01-02
//輸出一棵給定二叉樹的所有葉子節點 #include "btree.cpp" void DispLeaf(BTNode *b) { if (b!=NULL) { if (b->lchild==NULL && b->rchild==NULL) printf("%c ",b->data); //訪問葉子節點 DispLeaf(b->lchild); //輸出左子樹中的葉子節點 DispLeaf(b->rchild); //輸出右子樹中的葉子節點 } } void DispLeaf1(BTNode *b) { if (b!=NULL) { if (b->lchild==NULL && b->rchild==NULL) printf("%c ",b->data); //訪問葉子節點 DispLeaf1(b->rchild); //輸出右子樹中的葉子節點 DispLeaf1(b->lchild); //輸出左子樹中的葉子節點 } } int main() { BTNode *b; CreateBTree(b,"A(B(D(,G)),C(E,F))"); printf("b:");DispBTree(b);printf("\n"); printf("從左到右輸出所有葉子節點:");DispLeaf(b);printf("\n"); printf("從右到左輸出所有葉子節點:");DispLeaf1(b);printf("\n"); DestroyBTree(b); return 1; }