沿着树的深度遍历树的节点,尽可能深的搜索树的分支
用到的数据结构:栈
通俗的总结原理:进栈、出栈、一搜到底
代码
void dfs(Tree * root)
{
stack nodestack;
nodestack.push(root);
Tree* node;
while(!nodestack.empty())
{
node = nodestack.top();
cout<data<rchild)
{
nodestack.push(node->rchild);
}
if(node->lchild)
{
nodestack.push(node->lchild);
}
}
}
广度优先
从根节点开始,沿着树的宽度遍历树的节点,直到所有节点都被遍历完为止
用到的数据结构:队列
通俗的总结:入队、出队、步步为营
代码:
void bfs(Tree* root)
{
queue que;
que.push(root);
Tree* node;
while(!que.empty())
{
node = que.front();
que.pop();
cout<data<lchild)
{
que.push(node->lchild);
}
if(node->rchild)
{
que.push(node->rchild)l;
}
}
}



