c语言课程设计.docx
《c语言课程设计.docx》由会员分享,可在线阅读,更多相关《c语言课程设计.docx(31页珍藏版)》请在第一文库网上搜索。
1、课程设计报告课程设计名称:数据结构课程设计课程设计题目:不带父亲结点的平衡二叉树的建立(系):计算机学院业:计算机科学与技术班 级:学 号:姓 名指导教师:1需求分析21.1 问题描述21.2 问题理解22 |32.1 总体方案设计3数据结构设计3模块划分3函数表42.2 系统流程图5I-*-、L 5二叉树结点的插入6左平衡操作7右平衡操作8树形输出93调试分析103.1 函数组建问题103.2 运行问题104测试及运行结果114.1 主界面114.2 创建及结果12参考文献13附录(程序清单)141需求分析1.1 问题描述平衡二叉树又叫AVL树,它或则是一颗空树,或则是具有下列性质的二叉:它
2、的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过lo若将二叉树上结点的平衡因子BF定义为该结点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有结点的平衡因子可能是-1、0和1,只要二叉树上有一个结点的平衡因子的绝对值大于1,则该二叉树就是不平衡的。从键盘上输入一个整数序列,建立一科平衡二叉树。要求:(1)要能够形象方便地观察树的结构;(2)要能够形象地演示树的平衡过程;(3)课程设计报告必须符合课程设计报告规范;(4)提交合格的课设报告后,经指导教师测试(验收)程序,课设完成。1.2 问题理解按照平衡二叉树的概念,结合教科书的内容,进行二叉树的建立,并且能够完成树
3、形的输出。二叉树色建立较为简单,书上有介绍并且能搞完成建立,充分利用递归就能完成。而二叉树的树形输出就较为困难,需要仔细思考,充分利用二叉树的结构特点,以此为基本完成课设题目的要求。2系统设计2.1 总体方案设计2.1.1 数据结构设计不带父亲结点的平衡二叉树的储存结构如下:typedef struct BiTNode(int data;int bf;平衡因子struct BiTNode *lchild, *rchild;左、右孩子指针BiTNode, *BiTreej2.1.2 模块划分本程序共分为两个版块,分别是信息录入、建立平衡二叉树和输出。模块划分如图2. 1所示:图2.1平衡二叉树模
4、块划分原理框图2.1.3 函数表函数名称函数原型主要功能Ma i nvoid ma in ()主函数InitBitreestatus InitBiTree (BiTree &T)初始化二叉树TraverseBiTreStatus树形输出eTraverseBi Tree (Bi Tree &T)Depthint depth (BiTree &T)求树的深度表2.1函数表开始int e,m=O;int i,n,k;i=O;/输入数据/If (in)InsertAVL(T,e,taller);TraverseB iTree(T);2.2 系统流程图2.2.1 平衡二叉树的建立结束图2. 2平衡二叉树
5、的建立2.2.2二叉树结点的插入图2. 3二叉树结点的插入2.2.3左平衡操作V图2. 4左平衡操作2.2.4右平衡操作图2. 5右平衡操作2.2.5树形输出结束V2. 6树形输出3调试分析3.1 函数组建问题在编写函数时,遇到了多种选择,但是往往选择的都有或多或少的问题,导致在调用时出现许多问题。经过多次调试最终编写出符合条件的函数。例如,对于函数的类型就时常搞混乱,不知道什么时候用void类型,什么时候用status类型。除此以外,在函数调用时经常将返回值的类型弄混。这些问题给程序的编写带来了很大的困扰。3.2 运行问题在运行时,一开始都会有许多的语法错误,比如函数定义的错误,结构体定义错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计
