大数据开发语言课程设计多叉树转化为二叉树.pptx

大数据开发语言课程设计多叉树转化为二叉树.pptx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

大数据开发语言课程设计:多叉树转化为二叉树汇报人:XX时间:X年X月

-课程设计报告01目录Content

大数据开发语言课程设计:多叉树转化为二叉树大数据应用开发语言

1课程设计报告

课程设计报告设计者:陆启蒙,刁钰学号:2212631327,22126313252023年10月23日指导教师:花明专业班级:信22(13)大数据Q题目:算法4:二叉树的转化盐城师范学院信息工程学院

课程设计报告目录1题目 22需求分析 22.1任务 22.2运行环境 22.3开发工具 23解决方案 23.1XXX 23.2XXX 3

课程设计报告3.3XXX 33.4具体代码 34课程设计总结 3参考文献 31题目课题名称5:算法4限最多2人完成课题简介对于一棵多叉树,我们可以通过左孩子右兄弟表示法,将其转化成一棵二叉树如果我们认为每个结点的子结点是无序的。那么得到的二叉树可能不唯一。换句话说,每个结点可以选任意子结点作为左孩子,并按任意顺序连接右兄弟

课程设计报告给定一棵包含个结点的多叉树。结点从1至N编号,其中1号结点是根,每个结点的父结点的编号比自己的编号小。请你计算其通过左孩子右兄弟表示法转化成的二叉树,高度最商是多少。注:只有根结点这一个结点的树商度为0例如如下的多叉树可能有以下3种(这里只列出3种,并不是全部)不同的左孩子右兄弟表示其中最后一种高度最高,为4【输入格式】输入的第一行包含一个整数N以下N-1行,每行包含一个整数,依次表示2至N号结点的父结点编号【输出格式】输出一个整缴表示答案

课程设计报告【样例输入】512【样例输出】42需求分析2.1任务构建一个多叉树,并按照题目给出的相应要求,完成此算法的实现

课程设计报告2.2运行环境

硬件环境:11thGenIntel(R)Core(TM)i5-11400H

2.3开发工具

PyCharmCommunityEdition2022.3.2

3.1创建多叉树

创建Node类表示多叉树的节点,包含节点值val和子节点列表children。encode_to_binary_tree函数接收多叉树的节点数量N和每个节点的父节点列表parent_list。创建节点对象列表nodes,其中每个节点都有一个唯一的值。通过遍历parent_list构建多叉树的结构:-每个节点的父节点信息存储在parent_list中。-在nodes中,每个节点的子节点列表children被构建

3.2映射多叉树结构到二叉树

课程设计报告1创建二叉树的根节点binary_root和双向队列queue,开始层序遍历:-初始节点对为(binary_root,?nodes[1]),表示二叉树根节点和多叉树的根2节点。在层序遍历中,对于每个多叉树节点:-创建对应的二叉树节点binary_child。-将binary_child与前一个二叉树节点连接,形成链表结构。-添加(binary_child,?child)到队列,准备下一轮遍历。通过层序遍历,将多叉树的结构映射到二叉树中,保留了层次结构33.3计算二叉树最高高度4计算二叉树的高度,通过递归计算左右子树的高度,并返回最大值加一53.4具体代码

课程设计报告#导入deque模块,用于实现双向队列from?collections?import?deque#?定义二叉树节点类class?TreeNode:def?__init__(self,?x):#节点的值self.val?=?x#左子节点self.left?=?None#右子节点self.right?=None#定义多节点树节点类class?Node:def?__init__(self,?val,?children=None):#节点的值self.val?=?val#子节点列表,默认为空列表self.children?=?children?ifchildren?else?[]#将多节点树编码为二叉树的函数def?encode_to_binary_tree(N,parent_list):#创建多节点对象列表nodes?=?[Node(i)?for?i?in?range(N?+?1)]#构建多节点树for?i?in?range(2,?N?+?1):#获取当前节点的父节点parent?=?parent_list[i?-?2]#记录多节点树的父子关系nodes[i].parent?=?parentnodes[parent].children.append(nodes[i])#创建二叉树根节点binary_root?=?TreeNode(1)#使用双向队列实现层序遍历queue?=?deq

课程设计报告ue([(binary

文档评论(0)

萌萌的小秋 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档