树的中序遍历?(递归和非递归的方法)

来源:百度知道 编辑: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);

}<