树的中序遍历?(递归和非递归的方法)
来源:百度知道 编辑:UC知道 时间:2024/06/07 06:30:02
//二叉树节点定义
class TreeNodeElement
{
public:
TreeNodeElement();
TreeNodeElement(int value);
TreeNodeElement(int value,TreeNodeElement* l,TreeNodeElement* r);
~TreeNodeElement();
private:
public:
int _value;
TreeNodeElement* _l;
TreeNodeElement* _r;
};
typedef TreeNodeElement* TreeNode;
//递归实现(visit)
void Visit(TreeNode node)
{
cout<<node->_value<<" ";
}
//二叉树中序遍历的递归和非递归实现:
//递归遍历
void BinRetriveATree(TreeNode root,void (* visit)(TreeNode))
{
if (root)
{
BinRetriveATree(root->_l,visit);
(*visit)(root);
BinRetriveATree(root->_r,visit);
}<