急!!!C++问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:16:21
建立一棵二叉树,数据以字符串形式从键盘输入。在此二叉树上完成:
(1)前序、中序、后序遍历
(2)求出叶子数
(3)求树高
(4)左右子树交换,输出交换后的前序、中序遍历序列
请帮忙写一个具体的程序.
可不可以用简单点的,让初学者看得懂的啊.

//两个都是c++头文件
//第一个
// TREENODE.H
// Definition of class TreeNode
#ifndef TREENODE_H
#define TREENODE_H

template< class T > class Tree; // forward declaration

template< class NODETYPE >
class TreeNode {
friend class Tree< NODETYPE >;
public:
TreeNode( const NODETYPE & ); // constructor
NODETYPE getData() const; // return data
TreeNode *getLeftPtr() const { return leftPtr; }
TreeNode *getRightPtr() const { return rightPtr; }
void setLeftPtr( TreeNode *ptr ) { leftPtr = ptr; }
void setRightPtr( TreeNode *ptr ) { rightPtr = ptr; }
private:
TreeNode *leftPtr; // pointer to left subtree
NODETYPE data;
TreeNode *rightPtr; // pointer to right subtree
};

// Constructor
template< class NODETYPE >
TreeNode< NODETYPE >::TreeNode( const NODETYPE &d )
{
data = d;
leftPt