树的存储和遍历 (C++)
树的存储:将树以二叉树形式存储,兄弟节点变成其右子树
树的遍历:树的前序遍历相当于二叉树的前序遍历,树的后序遍历相当于二叉树的中序遍历
/**
* 树的存储和遍历
*/
#include <iostream>
using namespace std;
#define max(a,b) (((a) > (b)) ? (a) : (b))
const int Max = 20; // 假定树最多有20个结点
struct TNode{
char data; // 假定树的元素类型为char型
TNode *firstchild, *rightsib;
};
class Tree
{
public:
Tree( );
~Tree( ){
Release(root);} //析构函数,释放各结点的存储空间
void PreOrder( ){
PreOrder(root);}
void PostOrder( ){
PostOrder(root);}
int Depth(){
return Depth(root);}; //求树的深度
private:
TNode *root;
void PreOrder(TNode *bt); //前序遍历树
void PostOrder(TNode *bt); //后序遍历树
void Release(TNode *bt