收藏 分享(赏)

数据结构二叉树 - 副本.doc

上传人:hskm5268 文档编号:7778722 上传时间:2019-05-25 格式:DOC 页数:7 大小:213KB
下载 相关 举报
数据结构二叉树 - 副本.doc_第1页
第1页 / 共7页
数据结构二叉树 - 副本.doc_第2页
第2页 / 共7页
数据结构二叉树 - 副本.doc_第3页
第3页 / 共7页
数据结构二叉树 - 副本.doc_第4页
第4页 / 共7页
数据结构二叉树 - 副本.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、第 1 页 共 7 页 仲恺农业工程学院实验报告纸(院、系) 专业 班 组 课学号 姓名 实验日期 教师评定 实验三 二叉树的操作及应用一、实验目的1、掌握二叉树的特点,以及二叉链表的结构2、熟练掌握二叉树的各种操作,如建立、遍历、查找和输出3、利用己经掌握的进行实际应用二、实验要求1、 编写程序实现二叉树的各种运算,并在此基础上设计主函数,使其完成如下功能:(1)按先序建立二叉树,如“ABCDEGF”,(表示空格)。(2)建立二叉树后,判断二叉树空否,同时输出二叉树的深度。(3)建立二叉树后,判断二叉树空否,同时输出二叉树的结点数。(4)建立二叉树后,判断二叉树空否,同时输出二叉树的叶子点数

2、。2、编写一个子函数,用非递归算法中序遍历二叉树。三、程序运算结果截图四、程序源代码#include#include#include“stack.h“using namespace std;/#define n 15static int num=0;static int nodenum=0;第 2 页 共 7 页 static int h=0;static int tmp=0;/typedef char ElemType;/typedef struct BItNodeElemType data; struct BItNode *lchild,*rchild;BitNode,*BitTree;/

3、void Init(BitTree *t)(*t)=(BitTree)malloc(sizeof(BitNode); /二叉树初始化if(!t)exit(0);(*t)-lchild=(*t)-rchild=NULL;/BitTree Getlchild(BitTree t)return t-lchild; /获取左子树/BitTree Getrchild(BitTree t)return t-rchild; /获取右子树/bool Empty(BitTree t)if(t) return false; /判断是否为空else return true;/int Create(BitTree *

4、t,ElemType a,int num)(*t)-data=anum;num+;if(anum!= 第 3 页 共 7 页 num=Create( /创建二叉树num+;if(anum!= num=Create(elseh=htmp?h:tmp;tmp-;return num;/void visit(BitTree t)coutdatalchild)PreOrderTraverse(t-lchild); /递归先序遍历二叉树if(t-rchild)PreOrderTraverse(t-rchild);/void InOrderTraverse(BitTree t)if(t-lchild)In

5、OrderTraverse(t-lchild); /递归中序遍历二叉树visit(t);if(t-rchild)InOrderTraverse(t-rchild);/void PosOrderTraverse(BitTree t)第 4 页 共 7 页 if(t-lchild)PosOrderTraverse(t-lchild); /递归后序遍历二叉树if(t-rchild)PosOrderTraverse(t-rchild);visit(t);/void nInOrderTraverse(BitTree t)BitTree tmp=t;Stack s;if(!tmp) return;dowh

6、ile(tmp!=NULL)s.Push(tmp); /非递归中序遍历二叉树tmp=Getlchild(tmp);tmp=s.Pop();visit(tmp);tmp=Getrchild(tmp);while(tmp!=NULL|s.Empty();s.Destory();/void main()ElemType an=A,B,C, , ,D,E, ,G, , ,F, , , ;coutclass Stack/栈类private:int Maxsize;/栈的最大值private: T* base;/栈低private: T* top;/栈顶public: Stack();/初始化栈void

7、Push(T p);/入栈T Pop();/出栈void Clear();/清空栈void Destory();/销毁栈int Length();/获取栈的长度bool Empty();/判断栈是否为空;templateStack:Stack():Maxsize(10)this-base=new TMaxsize;if(!this-base) exit(0);this-top=this-base;templatevoid Stack:Push(T p)if(this-top-this-base=Maxsize)第 6 页 共 7 页 this-base=new TMaxsize+10;if(!

8、this-base) exit(0);this-top=this-base+this-Maxsize;this-Maxsize+=10;*(this-top)=p;this-top+;templateT Stack:Pop()if(this-top=this-base)return *(this-top);return *-(this-top);templatevoid Stack:Clear()this-top=this-base;templatevoid Stack:Destory()delete (this-base);this-base=this-top=NULL;this-Maxsize=0;templateint Stack:Length()return (this-top-this-base);templatebool Stack:Empty()if(this-top=this-base)return false;return true;第 7 页 共 7 页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报