- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
叉树代码(严蔚敏习题册)
由先序序列和中序序列建立二叉树建树:betree(T,i,j,length)
{
如果串长度length不为0
{ 定位值k=中序序列起始值j;
判断(中序序列定位值k==先序序列起始值i),若!=, 则定位值+1向后继续寻找;
当找到时,给树T申请空间,将先序序列起始值赋给树结点的数据域T-data;
然后计算出左子树结点数pos=定位值k-中序序列起始值j;
建左子树:递归调用建树函数betree(将树的左孩子传过去,左子树初始值+1,中序序列的定位值,pos);
建右子树:递归调用建树函数betree(将树的右孩子传过去,左子树初始值+1再+定位值,串长-定位值-1)
//这样递归建树就完成了
}否则 树赋空值;
}
///////////////////////////////////////////////////////////////////////
//由先序序列和中序序列建立二叉树
//start1是先序序列的起始位置,start2是中序序列的起始位置,
//len是先序序列长度
void CreateBiTree(int start1,int start2,int len,BiTree T)
{
int pos,len1;
if (len=0) T=NULL;
else
{ pos=start2; //记录中序序列串的位置
while(b[pos]!=a[start1]) pos++; //只要在中序序列串中没有找到根,那么就向继续向后寻找
T=(BiTree)malloc(sizeof(BiTNode));//在中序序列中找到根,开辟根结点的空间
T-data=a[start1]; //根的值为先序序列的第一个元素
len1=pos-start2; //中序序列根左子区即左子树的长度
CreateBiTree(start1+1,start2,len1,T-lchild); //建立左子树
CreateBiTree(start1+len1+1,pos+1,len-len1-1,T-rchild); //建立右子树
}
}
先序:Ebadcfhgikj 0 1 2 3 4 5 6 7 8 9 10 E B A D C F H G I K J start1 start1+1 start1+pos+1
中序:Abcdefghijk
0 1 2 3 4 5 6 7 8 9 10 A B C D E F G H I J K =start2 k=pos K+1
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
#define TElemType char
char a[20],b[20]; // a存放先序序列序序列//- - - - -二叉树的二叉链表存储表示- - - - -
typedef struct BiTNode
{ TElemType data;
struct BiTNode *lchild, *rchild; //左右孩子指针
} BiTNode, *BiTree;
Status (* VisitFunc)(TElemType v); // 函数指针
Status Visit(TElemType v);//访问函数
Status CreatBiTree(BiTree T);//由先序序列创建二叉树
void CreateBiTree(int start1,int start2,int len,BiTree T);//由先序序列和中序序列建立二叉树
Status PreOrderTraverse(BiTree T, Status(*Visit)(TElemType e));//先序遍历二叉树
Status InOrderTraverse(BiTree T, Status(*Visit)(TElemType e));//中序遍历二叉树
Status PostOrderTraverse(BiTree T, Status(*Visit)(TElemType e));//后序遍历二叉树
//图
您可能关注的文档
- 千本樱个版本的中午歌词.doc
- 升学班月月考试题.doc
- 升电子专业月考综合试题(改).doc
- 千词汇这么背我比较可以接受.doc
- 卉原中学高英语考试模拟试卷.doc
- 半连续机电设备检修保养制.doc
- ATS中文资料.doc
- 半夏专用肥料配方及详细技术资料(---YJZ型).doc
- 华东师大数分.doc
- 半连续生产班工作总结.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- GB50150-2016 电气装置安装工程 电气设备交接试验标准 (2).pdf VIP
- GBT51121-2015 风力发电工程施工与验收规范.doc VIP
- 抗凝剂皮下注射技术临床实践指南(2024版)解读 2PPT课件.pptx VIP
- 腰椎解剖应用.ppt VIP
- 人教版高一数学上册《第一单元集合》同步练习题及答案.pdf VIP
- 紫外可见分光光度计招标文件.doc VIP
- 《Android-Jetpack开发-原理解析与应用实战》读书笔记思维导图.pptx VIP
- DB3706_T 74-2021 西洋梨生产技术规程.pdf
- 【精选】ICAO附件14.pdf
- JEP122G 半导体器件失效机理和模型.pdf VIP
文档评论(0)