前序遍历
//二叉树的前序遍历(递归)
void pre_order(BtNode *ptr)
{
if(ptr==NULL)
{
return;
}
cout << T->data << " ";
pre_order(ptr->leftchild);pre_order(ptr->rightchild);}
中序遍历:
//二叉树的中序遍历(递归)
void in_order(BtNode *ptr)
{
if(ptr==NULL)
{
return;
}
in_order(ptr->leftchild);
cout << T->data << " ";
in_order(ptr->rightchild);}
后序遍历
//二叉树的后序遍历(递归)
void last_order(BtNode *ptr)
{
if(ptr==NULL)
{
return;
}
last_order(ptr->leftchild);
last_order(ptr->rightchild);
cout << T->data << " ";
}
层次遍历
int print_at_level(BtNode T, int level) {
if (!T || level < 0)
return 0;
if (0 == level) {
cout << T->data << " ";
return 1;
}
return print_at_level(T->leftchild, level - 1) + print_at_level(T->rightchild, level - 1);
}