ImageVerifierCode 换一换
格式:DOC , 页数:56 ,大小:708KB ,
资源ID:238221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/238221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(抽象类型实现二叉树实验报告1.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

抽象类型实现二叉树实验报告1.doc

1、一、 设计任务、要求及所用软件环境或工具设计任务:选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作编译环境:VC+6.0二、 抽象数据类型定义二叉树抽象类型定义如下ADT BinaryTree基本对象D:D是具有相同特性的数据元素的集合。数据关系R:若D,则R,称BinaryTree为空二叉树;若D,则RH,H是如下二元关系:(1)在D中存在惟一的称为根的数据元素root,它在关系H下无前驱;(2)若D-root,则存在D-root=D1,Dr,且D1Dr;(3)若D1,则D1中存在惟一的元素x1,H,且存在D1上的关系H1H; 若Dr,则Dr中存在惟一的元素xr,H,且存在

2、D1上的关系HrH; Hroot,xl,root,xr,Hl,Hr;(4)(Dl,Hl)是一棵符合本定义的二叉树,称为根的左子树,(Dr,Hr)是一棵符合本定 义的二叉树,称为根的右子树。基本操作P:InitBiTree(&T);操作结果:构造空二叉树T。DestroyBiTree(&T);初始条件:二叉树T存在操作结果:销毁二叉树TCreateBiTree(&T, definition);初始条件:definition给出二叉树T的定义操作结果:按definition构造二叉树TClearBiTree(&T);初始条件:二叉树T存在操作结果:将二叉树T清为空树BiTreeEmpty(T);初

3、始条件:二叉树T存在操作结果:若T为空二叉树,则返回TRUE,否则返回FALSEBiTreeDepth(T);初始条件:二叉树T存在操作结果:返回T的深度Root(T);初始条件:二叉树T存在操作结果:返回T的根Value(T,e);初始条件:二叉树T存在,e是T中某个结点操作结果:返回e的值Assign(T,&e,value);初始条件:二叉树T存在,e是T中某个结点操作结果:结点e赋值为valueParent(T,e);初始条件:二叉树T存在,e是T中某个结点操作结果:若e是T的非根节点,则返回它的双亲,否则返回“空”LeftChild(T,e);初始条件:二叉树T存在,e是T中某个结点操

4、作结果:返回e的左孩子。若e无左孩子,则返回“空”RightChild(T,e);初始条件:二叉树T存在,e是T中某个结点操作结果:返回e的右孩子。若e无右孩子,则返回“空”LeftSibling(T,e);初始条件:二叉树T存在,e是T中某个结点操作结果:返回e的左兄弟。若e是T的左孩子或无左兄弟,则返回“空”RightSibling(T,e);初始条件:二叉树T存在,e是T中某个结点操作结果:返回e的右兄弟。若e是T的右孩子或无右兄弟,则返回“空”InsertChild(T,p,LR,c);初始条件:二叉树T存在,p指向T中某个结点,LR为0或1,非空二叉树c与T不相交且右子 树为空。操作

5、结果:根据LR为0或1,插入c为T中p所指向结点的左或右子树。p所指结点的原有左或 右子树则成为c的右子树DeleteChild(T,p,LR);初始条件:二叉树T存在,p指向T中某个结点,LR为0或1.操作结果:根据LR为0或1,删除T中P所指结点的左或右子树PreOrderTraverse(T,Visit();初始条件:二叉树T存在,Visit是对结点操作的应用函数操作结果:先序遍历T,对每个结点调用函数Visit一次且仅一次。一旦visit()失败,则操 作失败。InOrderTraverse(T,Visit();初始条件:二叉树T存在,Visit是对结点操作的应用函数操作结果:中序遍历

6、T,对每个结点调用函数Visit一次且仅一次。一旦visit()失败,则操 作失败PostOrderTraverse(T,Visit();初始条件:二叉树T存在,Visit是对结点操作的应用函数操作结果:后序遍历T,对每个结点调用函数Visit一次且仅一次。一旦visit()失败,则操 作失败LevelOrderTraverse(T,Visit();初始条件:二叉树T存在,Visit是对结点操作的应用函数操作结果:层次遍历T,对每个结点调用函数Visit一次且仅一次。一旦visit()失败,则操 作失败 ADT BinaryTree三、 存储结构定义及各基本操作的实现1. 公用头文件base.

7、h/*Includes*#includestdio.h#includeconio.h#includestdlib.h#includewindows.h#includemalloc.h#includemath.h#define OK 1#define TRUE1#defineERROR0#defineFALSE0#defineMAXSIZE100/最多结点数typedefintStatus;typedefcharTElemType;/结点类型为字符型/*其它操作*shortwherex()/返回光标的x坐标CONSOLE_SCREEN_BUFFER_INFO csbinfo;GetConsole

8、ScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&csbinfo); return csbinfo.dwCursorPosition.X;shortwherey()/返回光标的y坐标CONSOLE_SCREEN_BUFFER_INFO csbinfo;GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&csbinfo); return csbinfo.dwCursorPosition.Y;void gotoxy(short x,short y)/移动光标到(x,y)坐标COOR

9、D point = x, y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), point);void SetColor(unsigned short TextColor=7)/设置字体颜色 unsigned BackGroundColor = 0;HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hCon,TextColor|BackGroundColor); voidPrint(unsigned x,unsigned y)/在(x,

10、y)位置显示方框SetColor(14);gotoxy(x,y+);printf();gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf( ); gotoxy(x,y+);printf();SetColor();voidClea

11、rWindow(unsigned x1 = 50,unsigned y1 = 0,unsigned x2 = 80,unsigned y2 = 10)/将屏幕(x1,y1,x2,y2)区域清屏,并显示方框unsignedi,j;for(i = x1;i x2;i+)for(j = y1; j y2;j+)gotoxy(i,j);printf( );Print(x1-2,y1);voidClearLine(unsigned y = 23)/清除第y行与y+1行的字符,并使光标在行首,默认清除第23与24行for(int i = 0;i 158;i+) gotoxy(i,y);putchar( )

12、;gotoxy(0,wherey()-1);voidClearAera(unsigned x = 96, unsigned y = 22)/清除(0,y)-(x,y+1)区域的字符,并使光标移动到yfor(unsigned i = 0; ix;i+)gotoxy(i%(x/2),y+(i/48);putchar( );gotoxy(0,y);/*StatusVisit(TElemType e)/二叉树结点Visit函数,显示字符的值printf(%c ,e);return OK;2. 顺序存储结构存储结构定义:/ *二叉树顺序存储结构*/* 在一棵具有n个结点的满二叉树中,从树根起,自上层到下层,/* 逐层从左到右给所有结点从1开始编号到n,非满二叉树补为满二叉树再编号,/* 存储到数组中(0号单元存储结点个数),空结点规定为&。 */ typedefTElemType*SqBiTree;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1