【数据结构】树和二叉树概念及其结构

news2024/11/27 5:27:08

目录

一 树概念及结构

1 树的概念

2 树的相关概念

3 树的表示

二 二叉树概念及结构

1 概念

2 特殊二叉树

3 二叉树的性质 


一 树概念及结构

1 树的概念

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

有一个特殊的结点,称为根结点,根节点没有前驱结点

除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继

 2 树的相关概念

 

节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为6

叶节点或终端节点:度为0的节点称为叶节点; 如上图:B、C、H、I...等节点为叶节点

非终端节点或分支节点:度不为0的节点; 如上图:D、E、F、G...等节点为分支节点

双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 如上图:A是B的父节点

孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点; 如上图:B是A的孩子节点

兄弟节点:具有相同父节点的节点互称为兄弟节点; 如上图:B、C是兄弟节点

树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为6

节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;

树的高度或深度:树中节点的最大层次; 如上图:树的高度为4

堂兄弟节点:双亲在同一层的节点互为堂兄弟;如上图:H、I互为兄弟节点

节点的祖先:从根到该节点所经分支上的所有节点;如上图:A是所有节点的祖先

子孙:以某节点为根的子树中任一节点都称为该节点的子孙。如上图:所有节点都是A的子孙

森林:由m(m > 0)棵互不相交的树的集合称为森林;

3 树的表示

树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间 的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法 等。我们这里就简单的了解其中最常用的孩子兄弟表示法。

二 二叉树概念及结构

1 概念

一棵二叉树是结点的一个有限集合,该集合:

1. 或者为空

2. 由一个根节点加上两棵别称为左子树和右子树的二叉树组成

从上图可以看出:

1. 二叉树不存在度大于2的结点

2. 二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树

注意:对于任意的二叉树都是由以下几种情况复合而成的:

2 特殊二叉树

1. 满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是 说,如果一个二叉树的层数为K,且结点总数是 ,则它就是满二叉树。

2. 完全二叉树:完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对 应时称之为完全二叉树。 要注意的是满二叉树是一种特殊的完全二叉树。

 

3 二叉树的性质 

1. 若i>0,i位置节点的双亲序号:(i-1)/2;i=0,i为根节点编号,无双亲节点

2. 若2i+1=n否则无左孩子

3. 若2i+2=n否则无右孩子

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

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

相关文章

Vue.js3学习篇--Vue组件的属性和方法

目录 一.属性和方法 1.属性基础 2.方法基础 二.计算属性和侦听器 1.计算属性 2.计算属性和函数的选择 3.计算属性的赋值 4.属性侦听 三.函数限流 四.表单数据的双向绑定 1.文本输入框 2.多行文本输入域 3.复选框和单选框 4.选择列表 5.两个常用修饰符 五.样式绑定…

【Verilog 教程】7.2 Verilog 文件操作

Verilog 提供了很多可以对文件进行操作的系统任务。经常使用的系统任务主要包括&#xff1a; 文件开、闭&#xff1a;$fopen, $fclose, f e r r o r 文件写入&#xff1a; ferror 文件写入&#xff1a; ferror文件写入&#xff1a;fdisplay, $fwrite, $fstrobe, f m o n i t…

无锡建筑模板厂家:选择适合无锡的建筑模板供应商

无锡作为江苏省的重要城市之一&#xff0c;建筑业发展迅猛&#xff0c;建筑模板作为建筑施工不可或缺的材料备受关注。在选择建筑模板时&#xff0c;考虑到无锡地区的经济状况、气候地形以及建筑风格等因素至关重要。除了常规的建筑模板材料&#xff0c;如建筑清水模板、建筑红…

【Redis】redis的特性和使用场景

Redis的特性 速度快基于键值对的数据结构服务器丰富的功能简单稳定客⼾端语⾔多持久化主从复制⾼可⽤&#xff08;HighAvailability&#xff09;和分布式&#xff08;Distributed&#xff09; 速度快 Redis 执⾏命令的速度⾮常快。 Redis 的所有数据都是存放在内存中的&…

Godot VisualStudio外部编辑器设置

文章目录 前言Godot visual studio 调试添加场景运行结果附加程序监听解决中文报错问题 Godot专栏地址 前言 Godot本质上只是一个游戏引擎&#xff0c;对C#只做了最小的适配&#xff0c;就是能打开&#xff0c;但是不能Debug。Godot支持许多外部编辑器&#xff0c;比如vs code…

MySql8.0 安装和启动

一、开发背景 需要存储数据&#xff0c;快速访问&#xff0c;这里选择 MySql&#xff0c;支持远程访问 二、开发环境 Window10 mysql-8.0.33-win64 三、实现步骤 1、下载压缩包 解压 网上找适合自己的版本&#xff0c;不建议使用32bit&#xff0c;MySql 对 32 bit 支持弱 参…

知识图谱系列3:读论文-《中国鸟类领域知识图谱构建与应用研究》-面向知识图谱的智能服务研究(需求、管理、查询、推理)

5.1鸟类领域知识服务需求研究 本部分根据不同人群&#xff0c;对其需求进行了研究。 并总结需求类型如下。 知识型服务需求指用户学习鸟类相关知识&#xff0c;包括知识内容、知识学习等。知识内容 需求为构建鸟类领域知识库作为知识的来源&#xff1b;知识学习需求为用户通过…

《游戏编程模式》学习笔记(十二)类型对象 Type Object

定义 定义类型对象类和有类型的对象类。每个类型对象实例代表一种不同的逻辑类型。 每种有类型的对象保存对描述它类型的类型对象的引用。 定义往往不是人能看懂的&#xff0c;我们需要例子才能够理解。 举例 假设你要为一款游戏制作一些怪物敌人。这些敌人有不同的血量及攻…

【juc】cyclicbarrier人数凑齐发车

目录 一、截图示例二、代码示例 一、截图示例 二、代码示例 package com.learning.cyclicbarrier;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;/*** …

【代码随想录】LC 209. 长度最小的子数组

文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、知识风暴 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记&#xff0c;如有侵权&#xff0c;立即删除。 一、题目 1、原题链接 209. 长度最小的子数组 2、题目…

数据库配置mysql5.7

1 创建数据库 """ 1.管理员连接数据库 mysql -uroot -proot2.创建数据库 create database hello default charsetutf8;3.查看用户 select user,host,password from mysql.user;# 5.7往后的版本 select user,host,authentication_string from mysql.user; "…

云原生开发:构建弹性应用的最新策略

文章目录 云原生开发概述策略一&#xff1a;容器化策略二&#xff1a;微服务架构策略三&#xff1a;自动化策略四&#xff1a;监控和日志记录总结 &#x1f389;欢迎来到云计算技术应用专栏~云原生开发&#xff1a;构建弹性应用的最新策略 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…

初级软件测试工程师如何涨薪?

测试进阶方向 说到功能测试进阶方向&#xff0c;这是每个测试从业者都会经历的一个阶段。 个人把测试进阶分为两大类&#xff1a;业务测试 和 技术测试 业务测试&#xff1a; 顾名思义就是对当前从事的业务知识非常熟习&#xff0c;了解产品的显示、隐示需求&#xff0c;测…

Web1.0——Web2.0时代——Web3.0

Web1.0 Web1.0是互联网的早期阶段&#xff0c;也被称为个人电脑时代的互联网。在这个阶段&#xff0c;用户主要通过web浏览器从门户网站单向获取内容&#xff0c;进行浏览和搜索等操作。在这个时代&#xff0c;技术创新主导模式、基于点击流量的盈利共通点、门户合流、明晰的主…

基于springboot实现人职匹配推荐管理系统演示【项目源码+论文说明】分享

基于springboot实现人职匹配推荐管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于人职匹配推荐系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了…

Linux友人帐之进程管理

一、基本概念 1、在Liux中&#xff0c;每一个程序都是有自己的一个进程&#xff0c;每一个进程都有一个id号&#xff01; 2、每一个进程呢&#xff0c;都会有一个父进程&#xff01; 3、进程可以有两种存在方式&#xff1a;前台&#xff01;后台运行&#xff01; 4、一般的话服…

企业AI工程化之路:如何实现高效、低成本、高质量的落地?

MLOps工程实践 概述面临挑战目的内容简介读者对象专家推荐目录 写在末尾&#xff1a; 主页传送门&#xff1a;&#x1f4c0; 传送 概述 作为计算机科学的一个重要领域&#xff0c;机器学习也是目前人工智能领域非常活跃的分支之一。机器学习通过分析海量数据、总结规律&#x…

【数据结构】二叉树--顺序结构及实现 (堆)

目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换&#xff08;Heap.c) 3 向上调整&#xff08;Heap.c) 4 插入&#xff08;Heap.c) ​5 向下调整&#xff08;Heap.c) 6 删除&#xff08;Heap.c) ​7 打印&#…

从零开始:sshd配置与远程登录的快速入门

1.sshd服务介绍 在服务端安装openssh服务 /etc/ssh/sshd_conf # sshd服务的配置文件 端口22 本服务启动后自动生成密钥存储文件 2.ssh参数 2.1.远程登陆 #常用参数 -l #指定登陆用户 -i #指定私钥 -X #开启图形 -f #后台运行 -o #指定连接参数 -t #指定连接跳板ssh userre…

比 N 小的最大质数

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…