- 9
- 0
- 约3.54千字
- 约 4页
- 2022-09-25 发布于湖北
- 举报
实习报告
这个题目就是要根据一个中序遍历和一个构树的规则构造一棵BST,我采用的算法是o(nlogn) + o(n)的算法, 其中o(nlogn)是指将label按照从小到大的顺序排列, 我用到了库函数的快速排序。而o(n)是指将结点构造成一个BST。下面的内容分为两个方面, 一是构造二叉树的算法分析, 二是代码的优化。
一 、o(n)的建树方法
首先确定我们从题目中知道的信息,即二叉树结点的个数, 以及每个结点的描述, 题目要求我们建立一棵BST, 其中BST又满足heap的性质, 即父亲结点的priority必须大于它的子结点的priority值, 输出按照二叉树的中序遍历形式。
显然这道题不可能用我们常规的建树方法, 即建BST或heap的常规方法,由于结点有50000,所以我们建树的算法必须为o(nlogn) 或者o(n)。
首先我们将结点按照label排序, 这样排好序的序列就是我们要构造的BST的中序遍历。然后我们根据中序遍历建树。从中序遍历中的第一个结点到最后一个结点, 逐一加入我们构造的树中,第一个结点可以独立构成一棵满足条件的树。按照中序遍历的定义,第二个结点可以是第一个结点的父亲结点(其左儿子为第一个结点) 或者是第一个结点的右儿子, 然后又可以根据两个结点的priority确定到底是放在那里。加入第三个结点也是这样操作的, 首先根据中序遍历的定义确定它可
您可能关注的文档
- 北京大学计算概论作业及答案.pdf
- 北京大学数据结构与算法作业1及答案.doc
- 内蒙古大学《算法与数据结构》实验报告.doc
- 内蒙古大学《算法与数据结构》习题集及答案.docx
- 内蒙古大学算法与数据结构试卷(三套)及参考答案.pdf
- 2026+年全国节能宣传周和全国低碳日主题班会.pptx
- 2026+年全国低碳日主题班会.pptx
- 2026+年全国节能宣传周及全国低碳日.pptx
- 2026+挪威共识指南:针对神经肿瘤患者选择质子治疗.pptx
- 2026+年全国节能宣传周主题班会.pptx
- 2026+循证建议:英克司兰在慢性肾脏病患者中的应用解读.pptx
- 2026+中国循证专家共识:儿童肺栓塞的管理 (1)_final.pptx
- 2026+中国循证专家共识:儿童肺栓塞的管理 (1)_repaired.pptx
- 2026+中国循证专家共识:儿童肺栓塞的管理_final.pptx
- 2026+中国循证专家共识:儿童肺栓塞的管理_repaired.pptx
- 2026+专家建议:嗜酸性食管炎组织学报告标准化.pptx
- 2026+最佳实践共识建议:所有医院发生的尿路感染的预防策略.pptx
- 2026+paflar+指南:少关节型幼年特发性关节炎_repaired.pptx
- 2026+PANLAR建议:少关节型幼年特发性关节炎的治疗.pptx
- 2026+国外实践指南+:女性首次经历精神病发作时首选的抗精神病药物.pptx
原创力文档

文档评论(0)