二叉树,按照层次顺序访问所有的结点,即广度优先搜索顺序。
struct Queue
{
Node* map[200];
int front;
int rear;
Queue() {front = 0; rear = 0;}
};
int BreadthSearchNumber(Node*root)
{
if (NULL == root) return 0;
Queue queue;
queue.rear++;
queue.map[queue.rear] = root;
while(queue.front < queue.rear) {
queue.front++;
if (NULL != queue.map[queue.front]->left ) {
queue.map[++queue.rear] = queue.map[queue.front]->left;
}
if (NULL != queue.map[queue.front]->right ) {
queue.map[++queue.rear] = queue.map[queue.front]->right;
}
}
return queue.front;
}