急!!!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