欢迎来到天天文库
浏览记录
ID:12758889
大小:358.50 KB
页数:14页
时间:2018-07-18
《2014广工数据结构实验报告抽象数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构设计性实验报告课程名称_____数据结构实验_题目名称树学生学院__计算机学院______专业班级13计科3班_学号__________学生姓名______指导教师_________2015年7月3日(1)设计任务、要求及所用软件环境或工具;(2)抽象数据类型定义以及各基本操作的简要描述;(3)所选择的存储结构描述及在此存储结构上各基本操作的实现;(4)程序清单(计算机打印),输入的数据及各基本操作的测试结果;(5)实验总结和体会。实验报告以规定格式的电子文档书写、打印并装订,排版及图表要清楚、工整。3.9思考题对设计性实验进行总结和讨论,包括
2、本实验的优、缺点,数据存储结构的特点,与其它存储结构之间的比较等。通过总结,可以对抽象数据类型有更全面、深入的认识,这是设计性实验不可缺少的重要内容。这部分内容应作为实验报告中的一个组成部分。1.题目:树所用软件为VS_2013基本操作:CreateTree(CSTree&T)功能:创建一棵树操作结果:输入根节点及孩子,构造一个用户自定义的树。DestroyTree(CSTree&T)初始条件:树T已存在。操作结果:销毁树T。TreeDepth(CSTreeT)初始条件:树T已存在。操作结果:返回T的深度。Empty(CSTreeT)初始条件:判断树T
3、是否为空操作结果:空为返回TURE,不空则返回FALSESearch(CSTreeT,TElemTypee)初始条件:树T已存在操作结果:查找T的结点e并返回其指针若这样的元素不存在,则返回值为0。LevelOrderTraverse(constCSTree&T)初始条件:树T已存在操作结果:层次遍历树TInsertChild(CSTreeT,inti,CSTreec)初始条件:树T已存在且非空,1≤i≤d+1操作结果:插入树作为T的第i棵子树2.存储结构定义公用头文件Header.h:#include#include4、h>#include#defineMAX_TREE_SIZE100#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintTElemType;树操作头文件:Treefunction.h:#include"Header.h"#include#include#include//孩子兄弟表示的树typedefstructCSNode{chardata;s5、tructCSNode*firstchild,*nextsibling;}*CSTree;3.算法设计TreeFunction.h:#include"Header.h"#include#include#include//孩子兄弟表示的树typedefstructCSNode{chardata;structCSNode*firstchild,*nextsibling;}*CSTree;/*------------程序中用到的队列------------------------------*/ty6、pedefCSTreeQElemType;//队中的元素typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*QueuePtr;/*typedefstructTreeName{charname;structCSNode*nametree;structTreeName*next;}TreeName,*TreeNameP;*/typedefstruct{QueuePtrfront;//队头指针QueuePtrrear;//队尾指针}LinkQueue;StatusInitQueue(LinkQu7、eue&Q)//构造一个空队列{Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));//队头结点if(!Q.front)exit(OVERFLOW);Q.front->next=NULL;returnOK;}StatusQueueEmpty(constLinkQueue&Q)//若队列为空,则返回TRUE,否则返回FALSE{if(Q.rear==Q.front)returnTRUE;returnFALSE;}StatusEnQueue(LinkQueue&Q,QElemTypee)//插入元素e为Q的新队尾元8、素{QueuePtrp=(QueuePtr)malloc(sizeof(QNode));if(
4、h>#include#defineMAX_TREE_SIZE100#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintTElemType;树操作头文件:Treefunction.h:#include"Header.h"#include#include#include//孩子兄弟表示的树typedefstructCSNode{chardata;s
5、tructCSNode*firstchild,*nextsibling;}*CSTree;3.算法设计TreeFunction.h:#include"Header.h"#include#include#include//孩子兄弟表示的树typedefstructCSNode{chardata;structCSNode*firstchild,*nextsibling;}*CSTree;/*------------程序中用到的队列------------------------------*/ty
6、pedefCSTreeQElemType;//队中的元素typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*QueuePtr;/*typedefstructTreeName{charname;structCSNode*nametree;structTreeName*next;}TreeName,*TreeNameP;*/typedefstruct{QueuePtrfront;//队头指针QueuePtrrear;//队尾指针}LinkQueue;StatusInitQueue(LinkQu
7、eue&Q)//构造一个空队列{Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));//队头结点if(!Q.front)exit(OVERFLOW);Q.front->next=NULL;returnOK;}StatusQueueEmpty(constLinkQueue&Q)//若队列为空,则返回TRUE,否则返回FALSE{if(Q.rear==Q.front)returnTRUE;returnFALSE;}StatusEnQueue(LinkQueue&Q,QElemTypee)//插入元素e为Q的新队尾元
8、素{QueuePtrp=(QueuePtr)malloc(sizeof(QNode));if(
此文档下载收益归作者所有