二叉树基本操作

来源:百度知道 编辑:UC知道 时间:2024/06/25 13:13:54
初始化,建立一棵空二叉树;
插入结点,形成课本P106图6-3(b)所示的二叉树;
先序遍历该二叉树,输出遍历序列;
中序遍历该二叉树,输出遍历序列;
后序遍历该二叉树,输出遍历序列;
层次遍历该二叉树,输出遍历序列。
求完整代码!

晕,这些东东在数据结构课本上都有啊,照抄就可以啊,用递归只有几句代码而已

试试,挺好的!还有菜单!

#include <iostream>
using namespace std;
struct Node
{
char data;
Node *left;
Node *right;
}*BiTree;

class Tree
{
public:
void Setroot();//设置二叉树的根节点
void CreateTree(Node*); //先序递归创建二叉树函数
void DeleteTree(Node*);//二叉树的销毁函数
void PostOrderTraverse(Node*);//后续递归遍历二叉树函数
void InOrderTraverse(Node*);//中序非递归遍历二叉树函数
void LevelOrder(Node *);//层次遍历二叉树函数
void leaves1(Node *);//输出二叉树的叶子节点函数
void leaves2(Node *);//输出二叉树的二叉节点函数
void leaves3(Node *);//输出二叉树的一叉节点函数
//int Showleaves(Node *);//输出二叉树的叶子节点个数函数
int Depthoftree(Node *);//计算二叉树的深度函数
bool Iscomplete(Node *);//判断二叉树是否为完全二叉树函数
bool Isp(Node *);//判断二叉树是否已初始化
~Tree(){DeleteTree(root);}//Tree的析构函数
static Node *root;//定义二叉树的根节点为静态变量
};
Node* Tree::root=0;//初始化二叉树的根节点
void Tree::Setroot()//设置