欢迎来到天天文库
浏览记录
ID:22287413
大小:281.66 KB
页数:16页
时间:2018-10-28
《数据结构课程设计报告-二叉树的遍历 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构课程设计报告课程名称:二叉树的遍历专业:班级:姓名:学号:指导教师:实验时间:二叉树及其遍历方法【问题描述I川递归和非递归两种方法创建一棵二叉树,并对它们进行先序遍历、中序遍历、后序遍历及层次遍历,并求出该二叉树的深度和叶子结点数、输入一个结点查找该结点的双亲、祖先及左右孩子结点。【基本要求】1.用递归和非递归两种方法创建-•棵二叉树。2.川递归和非递归两种方法,对二叉树进行先序遍历、中序遍历、后序遍历及层次遍历。3.求出该二叉树的深度和叶子结点数。4.输入一个结点查找该结点的双亲、祖先及左右孩子结点。5.写出课程设计报告【测试数据】选定两组测试数据进行测试,验证
2、程序的正确性。程序的调试分析主菜单递归创建二叉树遍历二叉树查找功能非递归创建非逆归遍历心得体会:通过设计遍历二叉树,让我懂得了递归创建和非递归创建二叉树等有关二叉树的基本知识,通过这次编程实现二叉树的遍历等问题,让我的动手能力增加了,以及在变成的过程中让我懂得了学习数据结构需要动手,不能光看书就能知道各种存储结构。在这次编程中,我通过查阅书本以及请教别人,让我受益匪浅,让我对数据结构有了新的认知。#incluh>#includetdlib.h>typedefintData;typedefstructSNode{DatanData;structSNode*LChild,*R
3、Child;}SNode/bitree,bitnode;typedefstruct{bitreelink;jntflag;}stacktype;SNode*pTree;intMenu();intSearch_Menu();intSub—Recu_Menu();intSub_Unrecu_Menu();voidInitTree(SNode*p);intDepth_Tree(SNode*p);intLeaf_Tree(SNode*p);DataParent_Tree(SNode*p,Datadata);DataLChild_Tree(SNode*p,Datadata);Dat
4、aRChild_Tree(SNode*p,Datadata);boolAncest_Tree(SNode*p,intdata);SNode*ReCu_Create(SNodevoidPreOrder(SNode*p);voidInOrderfSNode*p);voidLaterOrder(SNode*p);bitnode*create(bitnode*T);voidpreorder(bitnode*T);voidinorder(bitnode*T);voidlateorder(bitnode*T);voidlevelorder(bitreeT);intmain(intar
5、gc,char*argv⑴{InitTreefpTree);while(Menu())礬9return0;}voidInitTree(SNode*p){p=NULL;}intMenu(){Datai;charc=0;putsn;putsputschputs("puts(nputs("");puts("");putsn;puts("木氺木氺木木木木氺木氺木氺木氺木氺氺氺一^■jcjfj-木木木木氺木木木氺木氺氺氺木氺木木氺木氺木氺木氺木木木木氺木puts("l、选择递归创建二叉树");puts("2、选择非递归创建二叉树"};puts("O、退出scanfdo{switch
6、(i){case1:ReCu_Create(pTree);while(Sub_Recu_Menu())9break;case2:pTree=create(pTree);while(Sub_Unrecu_Menu())/break;case0:exit(0);defauIt:return0;}printf("请选择:fl);puts(Hl>选择递归创建二叉树puts(n2、选择非递归创建二叉树");putsf’O、结來系统");fflush(stdin);if(i==0)exit(O);scanf("%d"switch(i){case1:c=7;break;case2:
7、break;default:break;}}while(cc!='n');return0;}intSub_Recu_Menu(){"~system(ncIs1');Datai;puts("">;puts(IHI);puts("");putsj".■);putsn,选择先序遍历二叉树puts(n2、盛择屮序遍房二X树n);puts("3、选择后序遍历二叉树puts("4、选择层次遍历二叉树");puts("5、选#对比先泽、中序、后序、层次遍历二叉树");puts("6、输出该二叉树的深度n);puts("7、输出该二叉树的叶子
此文档下载收益归作者所有