数据结构课程设计树与二叉树的转换.doc

数据结构课程设计树与二叉树的转换.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
- - PAGE - -可修编- 数据构造课程设计 ?数据构造?课程设计报告 设计题目:_树与二叉树的转换___ XX:_______李锦_____________ 学号:________211214011_______ 专业:_______物联网工程_______ 院系:_______计算机科学与技术_______ 班级:__________1205___________ 指导教师:_________高秀梅______ 2014年 2 月 目录 TOC \o 1-3 \h \z \u 一、问题描述 2 二、根本要求 2 三、概要设计 2 四、数据构造设计 2 五、算法设计 3 1、算法分析 3 2、算法实现 3 六、程序测试与实现 6 1、函数之间的调用关系 6 2、主程序 6 3、测试数据 8 4、测试结果 8 七、调试分析 10 八、遇到的问题及解决方法 10 九、心得体会 10 一、问题描述 完成树与二叉树的转换 二、根本要求 树采用双亲表示法 能够将树转换为二叉树 对转换的二叉树进展算法设计统计人一结点的孩子数 利用转换的二叉树计算树的高度 三、概要设计 操作集合: (1) CTreeNode *SearchCTree(CTreeNode *root ,char data) 查找树结点 (2) CTreeNode *CreateSTree() 生成树 (3) void preorderTree(CTreeNode *ctroot) 树的遍历 (4) void PrintTree(CTreeNode *troot,int depth) 树的输出 (5 void initQueueCTree(QueueCTree *q) 初始化树队列 (6) void initQueueBTree(QueueBTree *q) 初始化二叉树队列 〔7〕void TreeToBTree(CTreeNode *ctroot,BTreeNode *btroot) //树转化为二叉树ctroot指向树的根节点,btroot,指向二叉树的根 四、数据构造设计 struct CTreeNode//树节点的类型 { char data;//数据域,采用char星 struct CTreeNode *children[DEGREE];//指向孩子节点的指针域 }; struct BTreeNode { char data;//数据域 BTreeNode *lchild,*rchild;//左右孩子节点的指针 }; //树队列构造体类型 struct QueueCTree { CTreeNode *CTreeArray[MAX_NODE_NUM];//构造体指针数组,存放节点的地址 //struct nodeCTree *next; int CTreeFront,CTreeRear; }; //二叉树队列构造类型 struct QueueBTree { BTreeNode *BTreeArray[MAX_NODE_NUM];//构造体指针数组,存放节点的地址 //struct nodeBTree *next; int BTreeFront,BTreeRear; }; 五、算法设计 1、算法分析 将树转换成二叉树的步骤是: 〔1〕加线。就是在所有兄弟结点之间加一条连线; 〔2〕抹线。就是对树中的每个结点,只保存他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线; 〔3〕旋转。就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之构造层次清楚。 2、算法实现 void TreeToBTree(CTreeNode *ctroot,BTreeNode *btroot)//树转化为二叉树ctroot指向树的根节点,btroot,指向二叉树的跟 { QueueCTree *VisitedCTreeNodes; QueueBTree *VisitedBTreeNodes;//辅助队列 initQueueCTree(VisitedCTreeNodes); initQue

文档评论(0)

hkfgmny + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档