C++模板与异常处理详解
1. 二叉树的中序和后序遍历
在处理二叉树时,中序和后序遍历是常见的操作。以下是中序和后序遍历的实现代码:
void BTnode<valType>::
inorder(BTnode *pt, ostream &os) const
{
if (pt)
{
if (pt->_lchild) inorder(pt->_lchild, os);
display_val(pt, os);
if (pt->_rchild) inorder(pt->_rchild, os);
}
}
template <typename valType>
void BTnode<valType>::
postorder(BTnode *pt, ostream &os) const
{
if (pt){
if (pt->_lchild) postorder(pt->_lchild, os);
if (pt->_rchild) postorder(pt->_rchild, os);
display_val(pt, os);
}
}
中序遍历的顺序是左子树 -> 根节点 -> 右子树,而后序遍历的顺序是左子树 -> 右子树 -> 根节点。