预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

2020年最新数据结构实验报告--实验目的(1)学会用先序创建一棵二叉树。(2)学会采用递归算法对二叉树进行先序、中序、后序遍历。(3)学会打印输出二叉树的遍历结果。实验内容【问题描述】建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。【基本要求】从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进行遍历(先序、中序、后序),将遍历结果打印输出。【测试数据】ABCDEG其中表示空格字符)则输出结果为先序ABCDEGF中序CBEGDFA后序CGBFDBA【选作内容】采用非递归算法实现二叉树遍历。实验步骤(一)需求分析、在这个过程中,接受遍历的二叉树是从键盘接受输入(先序),以二叉链表作为存储结构,建立的二叉树。因此,首先要创建一棵二叉树,而这棵二叉树是先序二叉树。本演示程序中,集合的元素设定为大写字母ABCDEFG,输出的先序,中序,后序遍历分别为ABCDEGF,CBEGDFA,CGBFDBA。二叉树可以表示为A接受的输入数据在进行递归的先序,中序,后序遍历后,分别将2020年最新数据结构实验报告--2020年最新数据结构实验报告--结果打印出来。2、在程序运行的过程中可以看到,以计算机提示用户执行的方式进行下去,即在计算机终端上提示“输入二叉树的先序序列”后,由用户在键盘上输入ABC##DE#G##F###,之后相应的选择遍历及遍历结果显示出来。3、程序执行的命令包括首先是二叉树的先序序列被创建输入,其次是对输入进去的先序序列有次序的进行先序,中序,后序遍历。最后是打印出二叉树的遍历结果T=(BTNode*)malloc(sizeof(BTNode));T=(BTNode*)malloc(sizeof(BTNode));//分配空间,生成4、测试数据)在键盘上输入的先序序列ABC##DE#G##F###)先序遍历结果ABCDEGF)中序遍历结果CBEGDFA)后序遍历结果CGBFDBA二)概要设计1、为实现上述程序功能,应以二叉树定义的相关操作和二叉树递归遍历的相关操作为依据构,建立二叉树的操作为typedefBTNode*BTree;BTreeCreatBTree(void){BTreeT;叉树递归遍历的相关操作为依据构,建立二叉树的操作为typedefBTNode*BTree;BTreeCreatBTree(void){BTreeT;charch;if((ch=getchar())=='#')2020年最新数据结构实验报告--2020年最新数据结构实验报告--return(NULL);else{有关以二叉链表作为存储结//定义二叉树的指针//读入#,返回空指针结点T->data=ch;T->lchild=CreatBTree();//构造左子树T->rchild=CreatBTree();//构造右子树return(T);}}、而有关先序、中序、后序遍历的递归操作为voidPreorder(BTreeT){if(T){printf("%c",T->data);Preorder(T->lchild);Preorder(T->rchild);}//先序遍历//先序遍历//访问结点2020年最新数据结构实验报告--2020年最新数据结构实验报告--//先序遍历左子树//先序遍历右子树voidInorder(BTreeT)//中序遍历}}if(T){Inorder(T->lchild);printf("%c",T->data);Inorder(T->rchild);}}//中序遍历左子树//访问结点//中序遍历右字树voidPostorder(BTreeT){if(T){Postorder(T->lchild);Postorder(T->rchild);2020年最新数据结构实验报告--