数据结构——【树模板】

news/2025/2/10 9:46:32/

#思路

1、  结点类:

        属性:数据,孩子结点列表

        功能1:认孩子: 前提:在父子都是结点的情况下

2.     树类:

        属性:根节点,生成初始化的总结点

        功能1:获取初始化后的结点,准备赋值

        功能2:设置根节点

        功能3:初始化父子节点,然后调用认孩子功能

        功能4:为各个id 的结点添加数据

        功能5:打印——第一次使用递归思想

                     先判断,确定根节点,然后打印

                     接着遍历该节点的孩子列表(此时孩子列表已可泛化)

                     调用函数,对遍历到的每个节点重复相同功能

python">class TreeNode:def __init__(self):self.data = Noneself.childrenList = []def AddChild(self, tNode):self.childrenList.append(tNode)class Tree:def __init__(self, maxNodes):self.root = Noneself.nodes = [TreeNode() for i in range(maxNodes)]def GetTreeNode(self, id):return self.nodes[id]def SetRoot(self, rootId):self.root = self.GetTreeNode(rootId)def AddChild(self, parentId, sonId):pNode = self.GetTreeNode(parentId)sNode = self.GetTreeNode(sonId)pNode.AddChild(sNode)def AssignDate(self, nodeId, data):self.GetTreeNode(nodeId).data = datadef Print(self, node=None):if node == None:node = self.rootprint(node.data, end="")for child in node.childrenList:self.Print(child)def Test():T = Tree(9)T.SetRoot(0)T.AssignDate(0, "a")T.AssignDate(1, "b")T.AssignDate(2, "c")T.AssignDate(3, "d")T.AssignDate(4, "e")T.AssignDate(5, "f")T.AssignDate(6, "g")T.AssignDate(7, "h")T.AssignDate(8, "i")T.AddChild(0, 1)T.AddChild(0, 2)T.AddChild(1, 3)T.AddChild(2, 4)T.AddChild(2, 5)T.AddChild(3, 6)T.AddChild(3, 7)T.AddChild(3, 8)T.Print()Test()


http://www.ppmy.cn/news/1570827.html

相关文章

四种垄断组织形式的简洁解释-AI

以下是四种垄断组织形式的简洁解释和记忆方法: 1. 卡特尔(Cartel) 定义:多个独立企业通过协议联合控制市场。特点: 企业保持独立性。协议内容通常包括价格、产量、市场份额等。 例子:石油输出国组织&#…

神经网络常见激活函数 6-RReLU函数

文章目录 RReLU函数导函数函数和导函数图像优缺点pytorch中的RReLU函数tensorflow 中的RReLU函数 RReLU 随机修正线性单元&#xff1a;Randomized Leaky ReLU 函数导函数 RReLU函数 R R e L U { x x ≥ 0 a x x < 0 \rm RReLU \left\{ \begin{array}{} x \quad x \ge 0…

【stm32学习】STM32F103实操primary2(FlyMCU)

单片机最小系统包括时钟电路、复位电路和电源电路 BootLoader其实就是烧写单片机的一个程序&#xff0c;是内置好的 杨桃建议把最小系统背下来&#xff0c;因为以后再自己设计单片机产品的时候是很重要的。 ↓keil。我电脑上的是keil μvision 5 keil使用方法&#xff1a; 找…

图解BWT(Burrows-Wheeler Transform) 算法

Burrows-Wheeler Transform (BWT) 是一种数据转换算法, 主要用于数据压缩领域. 它由 Michael Burrows 和 David Wheeler 在 1994 年提出, 广泛应用于无损数据压缩算法(如 bzip2)中. BWT 的核心思想是通过重新排列输入数据, 使得相同的字符更容易聚集在一起, 从而提高后续压缩算…

浏览器原理:渲染流程、重绘与回流,以及跨域解决方案

三个前端面试问题&#xff1a;渲染流程、重绘与回流&#xff0c;以及跨域解决方案。让我一个一个来思考如何组织这些内容。 首先是渲染流程&#xff0c;从输入URL到页面渲染的过程。我记得这个过程大致包括DNS解析、TCP连接、HTTP请求、服务器响应、浏览器解析和渲染等步骤。但…

网络安全 纵向是什么意思 网络安全维度

信息安全工程师-网络信息安全概述 网络信息安全相关概念 网络信息安全的发展历经了通信保密、计算机安全、信息保障、可信计算等阶段。狭义上的网络信息安全特指网络信息系统的各组成要素符合安全属性的要求&#xff0c;即机密性、完整性、可用性、抗抵赖性、可控性。广义上的…

vue3中使用print-js组件实现打印操作

第一步&#xff1a;安装依赖 yarn add print-js 第二步&#xff1a;创建打印组件&#xff1a;PrintHtmlComp.vue <template><div id"printArea_123456789"><!-- 默认插槽&#xff0c;传入打印内容 --><slot></slot></div>…

Android studio 编译速度增加

在gradle.properties增加如下代码&#xff0c;作用看注释 # Gradle 和 Kotlin 支持增量编译&#xff0c;只编译有改动的部分 kotlin.incrementaltrue # Gradle 支持并行构建&#xff0c;充分利用多核 CPU org.gradle.paralleltrue # Gradle 构建缓存可以缓存任务输出&#xff…