树的算法基础知识

什么是树:

树是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:

  • 有且仅有一个特定的称为根的结点
  • 当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......、Tm,其中每一个集合本身又是一棵树,并且称为根的子树
  • 树的度:即选取整个树中,出现最大分支的数量为整个树的度
  • 结点间的关系:左右分支称为结点的孩子,而结点称为左右分支的双亲,左右分支又互称为兄弟,祖先则是表示从根到该节点所经分支上的所有结点,同一层结点但不同分支称为堂兄弟。

树的表示:

双亲表示法:                                               data  |   parent

其中parent列用双亲的编号表示

孩子表示法:                           data | child1 | child2 | child3 | ..... | childn

下图是链表表示方法:

孩子双亲表示法:以上图为基础加上一列表示双亲编号

孩子兄弟表示法:                           data | firstchild | rightsilb

二叉树:

二叉树是n(n>=0)个结点的有限集合(最多有两个结点),该集合或者为空集(称为空二叉树)。或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

特殊二叉树:

斜树:呈现出来是一条直线的树

满二叉树:

完全二叉树: 叶子从左向右排序的形态

用数组表示:

  • 推论:对于位置为K的结点 左子结点=2*k+1,右子结点=2*(k+1)
  • 推论:最后一个非叶结点的位置为(N/2)-1,N为数组长度

二叉树表示:

data | leftchild | rightchild

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch学习笔记之三:Logstash数据分析

第3章 Logstash数据分析 Logstash使用管道方式进行日志的搜集处理和输出。有点类似*NIX系统的管道命令 xxx | ccc | ddd,xxx执行完了会执行ccc,然后执行ddd。 在logstash中,包括了三个阶段: 输入input --> 处理filter(不是必须…

异或炸弹(easy)(牛客小白月赛95)

题目链接: D-异或炸弹(easy)_牛客小白月赛95 (nowcoder.com) 题目: 题目分析: 一看 还以为是二维差分的题呢 到后来才发现是一维差分问题 这里的距离是 曼哈顿距离 dis abs(x - xi) abs(y - yi) 暴力的做法 就是枚举 n * n 个…

word-海报制作

1、确定海报的尺寸大小 2、创建主题颜色 设计-颜色-自定义颜色-柑橘rgb值改变着色1-着色6的颜色 3、将文字添加至文本框,更改字体颜色、大小和格式 4、添加背景水印:插入-形状-文本框 5、组合全部元素 图片素材网址:

Power BI前端设计:深度探索与实战技巧

Power BI前端设计:深度探索与实战技巧 Power BI作为一款强大的商业智能工具,其前端设计对于用户体验和数据可视化效果至关重要。本文将深入探讨Power BI前端设计的四个关键方面、五个实用技巧、六个设计要素以及七个注意事项,助您提升Power …

学习分享-如何避免 Apache ShardingSphere 中的笛卡尔积现象

前言 Apache ShardingSphere 是一个开源的分布式数据库中间件,旨在通过数据分片、分布式事务、分布式治理等技术,提升数据库系统的性能和可扩展性。然而,最近在使用 ShardingSphere 进行分库分表并多表查询时,出现了笛卡尔积现象…

Spark Streaming 概述及入门案例

一、介绍 1. 不同的数据处理 从数据处理的方式: 流式数据处理(Streaming)批量数据处理(Batch) 从数据处理的延迟: 实时数据处理(毫秒级别)离线数据处理(小时或天级别) 2. 简介 SparkStreaming 是一个准实时(秒或分钟级别)、微批量的数据处理框架Spa…

在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ

在Red Hat Enterprise Linux 9上快速安装和部署RocketMQ可以按照以下步骤进行: 1. 安装Docker 首先,确保Docker已经安装在你的系统上。 更新系统包并安装依赖项: sudo yum update -y sudo yum install -y yum-utils device-mapper-persiste…

2024年5月份面试总结

2024年5月份找工作/面试总结: 本人前段时间写了刚过完年后的一个月内找工作的情况,请查看https://blog.csdn.net/zgaoq/article/details/136236788?spm1001.2014.3001.5501 但是后续写的总结被和谐了,不知道这篇文章能不能发出来。 1、5月份…

系统架构设计师【第19章】: 大数据架构设计理论与实践 (核心总结)

文章目录 19.1 传统数据处理系统存在的问题19.2 大数据处理系统架构分析19.2.1 大数据处理系统面临挑战19.2.2 大数据处理系统架构特征 19.3 Lambda架构19.3.1 Lambda架构对大数据处理系统的理解19.3.2 Lambda架构应用场景19.3.3 Lambda架构介绍19.3.4  Lambda架构的实…

数据库的换行符到前端不展示了

是这样的原本数据库中的数据都是带有\n换行符的但是页面却一直不展示 解决办法 <el-drawer title"预览" :visible.sync"drawer" :with-header"false"><div v-for"(item, index) in cardArray" :key"index"><…

如何将 Vue 应用程序部署到 Cloudflare Pages

在现代 Web 开发中&#xff0c;Vue.js 已经成为了一个非常受欢迎的前端框架。它的简洁、高效和灵活性使得开发人员可以轻松构建出色的用户界面和交互体验。而 Cloudflare Pages 提供了一个简单而强大的方式来托管和部署静态网站和应用程序。本文将介绍如何将 Vue 应用程序部署到…

Android常见内存泄漏场景总结

一、非静态内部类造成的内存泄漏 造成原因&#xff1a;非静态内部类默认会持有外部类的引用&#xff0c;如果内部类的生命周期超过了外部类就会造成内存泄漏。 场景&#xff1a;当Activity销毁后&#xff0c;由于内部类中存在异步耗时任务还在执行&#xff0c;导致Activity实…

[补题记录]Leetcode 3.无重复字符的最长子串

传送门&#xff1a;无重复字符的最长子串 Problem/题意 给一个由英文、数字、符号、空格组成的字符串&#xff0c;找出其中不含有重复字符的最长子串的长度。 比如&#xff1a;abb 包含了重复字符 b&#xff1b;abc 没有包含重复字符。 注意是子串&#xff0c;不是子序列。 …

内网安全:横向传递攻击(PTH || PTK || PTT 哈希票据传递)

内网安全&#xff1a;横向传递攻击. 横向移动就是在拿下对方一台主机后&#xff0c;以拿下的那台主机作为跳板&#xff0c;对内网的其他主机再进行后面渗透&#xff0c;利用既有的资源尝试获取更多的凭据、更高的权限&#xff0c;一步一步拿下更多的主机&#xff0c;进而达到控…

CodeMirror 创建标签计算编辑器

在日常开发中对于一些数据计算场景可能会遇到标签计算的需求&#xff0c;下面关于如何使用CodeMirror实现标签计算编辑功能。 1&#xff0c;结果图 2&#xff0c;主体代码逻辑 大家只需要复制粘贴主要codeMirror使用逻辑即可 <template><el-dialogref"dialogRe…

抖店商家疑惑,自然流量突然下滑,为什么呢?

大家好&#xff0c;我是喷火龙。 很多的抖店商家会遇到一种情况&#xff0c;那就是自己店铺的流量好好的&#xff0c;不知道怎么的就突然没流量了&#xff0c;各方面的数据都断崖式的下降。 为什么会这样呢&#xff1f;原因有以下几点&#xff0c;大家可以检查一下&#xff0…

低代码和零代码软件时代质量管理(QM)和质量管理系统(QMS)

【前言】 质量控制过程的目的是为了确保产品的制造标准得到保持和改进。质量控制过程使公司能够满足客户的期望&#xff0c;同时确保产品质量的一致水平。采用这些标准创造了一种公司文化&#xff0c;鼓励所有员工努力实现高质量的生产标准。低代码和零代码软件可以成为质量控…

【网络通信层】华为云连接MQTT设备

本文介绍华为云设备连接到设备的操作。 目录 一、在华为云创建设备 二、连接MQTT 三、通信 一、在华为云创建设备 现在华为云上可以免费使用部分受限服务&#xff0c;包括免费创建自己的设备连接。 首先&#xff0c;登录华为云平台共建智能世界云底座-华为云 (huaweicl…

徐州服务器机柜租用的好处

随着服务器的广泛应用&#xff0c;越来越多的企业都选择服务器托管和租用等服务&#xff0c;在选择服务器租用之前我们还需要进行机柜租用&#xff0c;便于放置所适用的服务器&#xff0c;那么企业选择徐州服务器机柜租用的好处有哪些呢&#xff1f; 选择徐州服务器机柜租用&am…

Qt Window Dialog 无标题栏 ,无边框,可拖动

1.效果&#xff1a; 2. 主要实现步骤&#xff1a; 设置窗口 flag&#xff1a; this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); 创建变量存储位置 QPoint m_dragPosition; 对鼠标左键按下和移动事件做处理 void DraggableDialog::mousePre…