标准文案
中国矿业大学
测绘软件设计与实现
实验报告
学 号: 姓 名: 班 级: 指导教师: 王永波
实验一 二叉树的构建及其遍历算法的实现
大全
标准文案
实验目的:
完成二叉树的构建以及二叉树的遍历等,加深对树以及二叉树的遍历相关知识的理解。
实验内容:
1.二叉树类的定义及建立。
2.二叉树的前序、中序、后序遍历。
主要代码:
template
public:
C_LJH_BinTree();//构造函数,根据输入前序序列由键盘输入
~C_LJH_BinTree();//析构函数 void PreOrder();//前序遍历 void InOrder();//中序遍历 void PostOrder();//后序遍历 private: T data;
C_LJH_BinTree
bool NO_Die; };
template
C_LJH_BinTree
NO_Die = false; lchild = NULL; rchild = NULL; char ch; cin>>ch;
if (ch == '#') {
NO_Die = true;//若为#,代表空节点 } else {
this->data = ch;//保存输入的节点
//左子树
C_LJH_BinTree *newChild0 =
大全
new C_LJH_BinTree
if (newChild0->NO_Die) delete newChild0; else
this->lchild= newChild0;
//右子树
C_LJH_BinTree *newChild1 = new C_LJH_BinTree
if (newChild1->NO_Die) delete newChild1; else
this->rchild= newChild1; } }
//析构函数
template
C_LJH_BinTree
if (lchild) delete lchild; //删除父节点之前,先删除子节点
if (rchild) delete rchild; }
//前序遍历
template
void C_LJH_BinTree
cout<
this->lchild->PreOrder(); if (rchild!=NULL)
this->rchild->PreOrder();
标准文案
}
//中序遍历
template
void C_LJH_BinTree
if (lchild) lchild->InOrder();
cout<
//后序遍历
template
if (lchild) lchild->PostOrder(); if (rchild) rchild->PostOrder();
cout<
int main() {
cout<<\请输入二叉树的前序遍历:\ cout<<\(以#作为分支结尾,例如:A B # # C # #)\
C_LJH_BinTree cout<<\前序遍历为:\ m_tree.PreOrder(); cout< cout<<\中序遍历为:\ m_tree.InOrder(); cout< cout<<\后序遍历为:\ m_tree.PostOrder(); cout< 实验结果: 实验体会: 通过本次试验,理解了二叉树类的构建、二叉树的建立及其遍历。作为第一次实验,内容上实现实验所要求的目没有多大的难处,但其从数据结构出发,让我回忆起很多以前学过的知识,对我来说,收获不少。 大全