问答题
编写一个算法,输出二叉树中距给定结点最近的叶子子孙(可以是给定结点的孩子)。注:二叉树用二叉链表示。
【正确答案】正确答案://二叉树层次遍历算法 #include
#include #define MaxSize 1 000 typedef char ElemType; typedef struct node ElemType data; struct node*lchild: struct node*rchild; }BTNode; //使用队列来存储数据,进行层次遍历算法 Node*LevelOrder(BTNode*b) { BTNode*P: BTNode*qu[MaxSize]; int front。rear; front=rear=-1: rear+4-; qu[rear]=b: while(front!=rear) { front=(front+1)%MaxSize; p=qu[front]; printf("%c",p-->data); if(p->lchild!=NULL) { rear一(rear+1)%MaxSize; qu [rear]=p->1child; } jf(p-->rchild!=NULL) { rear=(rear+1)%MaxSize; qu [rear]=p->rchild; } jf(p->lchild!=NULL&&P->rchild!=NULL) return P; } return NULL; }
【答案解析】