孩子列表表示法
struct tree_node
{
int data;
list childs;
}
(A)深度遍历:
递归算法:
先根:
void preOder(tree_node* root)
{
if(!root) return;
printf(root->data);
list::iterator it;
for(it=root->childs.begin();it!=root->childs.end();it++)
preOrder(*it);
}
后根:
void postOrder(tree_node* root)
{
if(!root) return;
list::iterator it;
for(it=root->childs.begin();it!=root->childs.end();it++)
preOrder(*it);
printf(root->data);
}
非递归算法:
(B)广度遍历(按层次序列遍历)
阅读(773) | 评论(0) | 转发(0) |