7-8 輸出二叉樹中值為x的節點的所有祖先
阿新 • • 發佈:2019-02-15
//輸出二叉樹中值為x的節點的所有祖先 #include "btree.cpp" bool ancestor(BTNode *b,ElemType x) { if (b==NULL) return false; else if (b->lchild!=NULL && b->lchild->data==x || b->rchild!=NULL && b->rchild->data==x) { printf("%c ",b->data); return true; } else if (ancestor(b->lchild,x) || ancestor(b->rchild,x)) { printf("%c ",b->data); return true; } else return false; } int main() { BTNode *b; ElemType x='G'; CreateBTree(b,"A(B(D(,G)),C(E,F))"); printf("b:");DispBTree(b);printf("\n"); printf("結點%c的所有祖先:",x); ancestor(b,x);printf("\n"); DestroyBTree(b); return 1; }