Acm学习总结18
树及二叉树:树含有结点上端结点为下端结点的父结点,一棵树的根结点为1其他节点等于他的父结点层次加1,一棵树中所有的结点的层次最大值称为树的深度。
二叉树的概念:
满二叉树就是每个结点都有深度为k的二叉树有2k–1个结点,完全二叉树就是满二叉树只能少了最右边的子节点或者一个父结点没有子节点;
二叉树的遍历:
㈠先序遍历的操作定义如下:
若二叉树为空,则空操作,否则
①访问根结点
②先序遍历左子树
③先序遍历右子树
void preorder(tree bt) //先序遍历根结点为bt的二叉树的递归算法
{
if(bt)
{
cout << bt->data;
preorder(bt->lchild);
preorder(bt->rchild);
}
}
㈡中序遍历的操作定义如下:
若二叉树为空,则空操作,否则
①中序遍历左子树
②访问根结点
③中序遍历右子树
void inorder(tree bt) //中序遍历根结点为bt的二叉树的递归算法
{
if(bt)
{
inorder(bt->lchild);
cout << bt->data;
inorder(bt->rchild);
}
}
㈢后序遍历的操作定义如下:
若二叉树为空,则空操作,否则
①后序遍历左子树
②后序遍历右子树
③访问根结点
void postorder(tree bt) //后序遍历根结点为bt的二叉树的递归算法
{
if(bt)
{
postorder(bt->lchild);
postorder(bt->rchild);
cout << bt->data;
}
}
这次的总结也就这些了;