- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之树与二叉树的转换毕业论文
衡阳师范学院
《数据结构》课程设计
题 目: 树与二叉树的转换
系 别: 计算机科学系
专 业: 计算机科学与设计
班 级: 1302
学生姓名: 戴志豪
学 号:
指导老师: 赵磊
完成日期: 2015年1月3号
目 录
一.需求分析.…………………………………………………………………3
二.概要设析………………………………………………………………….3
三.详细设计………………………………………………………………….5
的建立………………………………………………………………..5 2.一般树转化成二叉树…………………………………………………..6序遍历树的递归算法………………………………………………..7 4.后序遍历树的递归………………………………………………..7
5.先序遍历树的非递归算法……………………………………………..7序遍历树的非递归算法……………………………………………..8
7.序非递归的算法…………………………………………………..设计与调试分析………………………………………………………….0
五.用户………………………………………………………………….10
六.测试结果………………………………………………………………….11附录程序)………………………………………………………….14总结……………………………………………………………………….20
一.需求分析
本程序的功能是对任意树进行递归前序遍历和后序遍历,以及实现的用到的建立与二叉树的转换算法后序二叉树的递归递归算法序遍历算法
1建立
2*i+1 的值存入左孩子,为2*i+2的存入右孩子。 BiNode creat(),BiNode stree_creat(char *a,int k)。
2一般树转化成二叉树void exchange(),class Tree
3先序遍历树的递归算法
1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。void PreOrder(BiNode root)。
4后序遍历树的递归算法
1)后序遍历左子树;(2)后序遍历右子树。(3)访问根结点;void PostOrder(BiNode root)。
5先序遍历树的非递归算法
1)先将根节点进栈,在栈不为空时循环2)出栈p,访问*p若右孩子节点不空将右孩子节点进栈若左不空时其左孩子节点进栈。的非递归算法
一个栈保存需要返回的指针,先扫描根节点所有的左孩子节点并一一进栈,出栈一个节点*b作为当前节点,然后扫描节点的右子树。当节点的左右孩子节点均访问后再访问节点,如此重复操作,直到栈空为止。序的遍历
void LevelOrder(BiNode root)。
详细设计
1树的建立PTree CreatTree(PTree T)
{
int i=1;
int fa,ch;
PTNode p;
for(i=1;ch!=-1;i++)
{
printf(输入第%d结点:\n,i);
scanf(%d,%d,fa,ch);
printf(\n);
p.data=ch;
p.parent=fa;
T.count++;
T.node[T.count].data = p.data;
T.node[T.count].parent = p.parent;
}
printf(\n);
printf(创建的树具体情况如下:\n);
print_ptree(T);
return T;
2一般树转换成二叉树BTNode *change(PTree T)
{
int i,j=0;
BTNode p[MAX_TREE_SIZE];
BTNode *ip,*is,*ir,*Tree;
ip=(BTNode *)malloc(sizeof(BTNode));
is=(BTNode *)malloc(sizeof(BTNode));
ir=(BTNode *)malloc(sizeof(BTNode));
Tree=(BTNode *)malloc(sizeof(BTNode));
for(i=0;iT.count;i++)
{
p[i]=GetTreeNode(T.node[i].data);
}
for(i=1;iT.count;i++)
{
ip=p[i];
is=p[j];
while(T.node[i].parent!=is-data)
{
j++
您可能关注的文档
最近下载
- 年产3万吨黄桃罐头工厂设计.docx
- 浅谈政务信息化项目全过程咨询管理.pdf VIP
- [临沂]2024年山东临沂市直部分医疗卫生事业单位招聘笔试典型考题与考点研判含答案详解.docx
- 2022-2023学年人教版二年级数学下册第九单元 数学广角——推理测试卷含答案.docx
- 年产一万吨黄桃罐头工厂设计.docx VIP
- 2024年水泥质量与检验题库——简答题(二).docx
- 2025年云南省高等职业技术院校分类考试思想政治模拟卷(A4).doc VIP
- 钒钛磁铁矿冶炼渣选铁工艺及设备.docx VIP
- 新疆大学《计算机网络》2019-2020学年期末试卷.pdf VIP
- 水泥质量与检验题库--简答题(含答案).docx VIP
文档评论(0)