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

上传人:h**** 文档编号:26535601 上传时间:2022-07-18 格式:DOCX 页数:7 大小:12.69KB
返回 下载 相关 举报
数据结构课程设计树与二叉树的转换.docx_第1页
第1页 / 共7页
数据结构课程设计树与二叉树的转换.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《数据结构课程设计树与二叉树的转换.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计树与二叉树的转换.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据结构课程设计树与二叉树的转换 数据结构课程设计报告 设计题目:_树与二叉树的转换_ 姓名:_李锦_ 学号:_211214011_ 专业:_物联网工程_ 院系:_计算机科学与技术_ 班级:_1205_ 指导教师:_高秀梅_ 2022年 2 月14 日 目录 一、问题描述 (2) 二、基本要求 (2) 三、概要设计 (2) 四、数据结构设计 (2) 五、算法设计 (3) 1、算法分析 (3) 2、算法实现 (3) 六、程序测试与实现 (6) 1、函数之间的调用关系 (6) 2、主程序 (6) 3、测试数据 (8) 4、测试结果 (8) 七、调试分析 (10) 八、遇到的问题及解决办法 (10)

2、 九、心得体会 (10) 一、问题描述 完成树与二叉树的转换 二、基本要求 1、树采用双亲表示法 2、能够将树转换为二叉树 3、对转换的二叉树进行算法设计统计人一结点的孩子数 4、利用转换的二叉树计算树的高度 三、概要设计 操作集合: (1) CTreeNode *SearchCTree(CTreeNode *root ,char data) 查找树结点 (2) CTreeNode *CreateSTree() 生成树 (3) void preorderTree(CTreeNode *ctroot) 树的遍历 (4) void PrintTree(CTreeNode *troot,int de

3、pth) 树的输出 (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 *childrenDEGREE;/指向孩子节点的指针域

4、 ; struct BTreeNode char data;/数据域 BTreeNode *lchild,*rchild;/左右孩子节点的指针 ; /树队列结构体类型 struct QueueCTree CTreeNode *CTreeArrayMAX_NODE_NUM;/结构体指针数组,存放节点的地址 /struct nodeCTree *next; int CTreeFront,CTreeRear; ; /二叉树队列结构类型 struct QueueBTree BTreeNode *BTreeArrayMAX_NODE_NUM;/结构体指针数组,存放节点的地址 /struct nodeBT

5、ree *next; int BTreeFront,BTreeRear; ; 五、算法设计 1、算法分析 将树转换成二叉树的步骤是:(1)加线。就是在所有兄弟结点之间加一条连线;(2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;(3)旋转。就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。 2、算法实现 void TreeToBTree(CTreeNode *ctroot,BTreeNode *&btroot)/树转化为二叉树ctroot 指向树的根节点,btroot,指向二叉树的跟 QueueCTree *Visited

6、CTreeNodes; QueueBTree *VisitedBTreeNodes;/辅助队列 initQueueCTree(VisitedCTreeNodes); initQueueBTree(VisitedBTreeNodes);/初始化队列 CTreeNode *ctnode; BTreeNode *btnode,*p,*LastSibling; int i; btroot=new BTreeNode;/添加开辟内存空间语句 btroot-data=ctroot-data;/树的根节点作为二叉树的根节点 btroot-lchild=btroot-rchild=NULL; addQueue

7、CTree(VisitedCTreeNodes,ctroot);/树的跟节点入队 addQueueBTree(VisitedBTreeNodes,btroot);/二叉树的跟节点入队 while(!QueueCTreeEmpty(VisitedCTreeNodes) ctnode=delQueueCTree(VisitedCTreeNodes);/树节点出队 btnode=delQueueBTree(VisitedBTreeNodes);/二叉树节点出队 for(i=0;ichildreni=NULL)/孩子节点访问完毕 break; p=new BTreeNode;/分配二叉树节点 p-data=ctnode-childreni-data; p-lchild=p-rchild=NULL; if(i=0) btnode-lchild=p;/长子,作为父节点的做孩子 else LastSibling-rchild=p;/作为上一个兄弟节点的右孩子 LastSibling=p; addQueueCTree(VisitedCTreeNodes,ctnode-childreni);/树节点进队列 addQueueBTree(VisitedBTreeNodes,p);/二叉树节点进门队列 3、算法流程图 六、程序测试与实现 1、函数之间的调用关系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁