数据结构之----树

ops/2024/9/20 9:19:08/ 标签: 数据结构


结点拥有的子树数量称为结点的度
树中结点的最大层次称为树的深度或高度
如果将树中结点的各子树看成从左至右是有次序的,不能互换的,则称该树为有序树,否则称无序树
森林是m棵互不相交的树的集合

树的存储结构

1,双亲表示法
#define  MAX_TREE_SIZE  100
typedef  struct  PTNode
{
      int  data;      //节点数据
      int  parent;  //双亲位置
}PTNode;

typedef  struct
{
    PTNode  nodes[MAX_TREE_SIZE];
    int   r;   //根的位置
    int  n;   //结点数
}PTree;

2,孩子表示法
3,孩子兄弟表示法

1满二叉树
2完全二叉树

二叉树链表
typedef  struct  BiTNode
{
     int  data;     //结点数据
     struct  BiTNode* lchild;
     struct  BiTNode* rchild;
}BiTNode, *BiTree;

二叉树三种遍历方法
1,前序遍历  根左右
2,中序遍历  左根右
3,后序遍历  左右根
 


http://www.ppmy.cn/ops/41463.html

相关文章

【JVM】调优工具

这里简单介绍一下各种调优用到的工具 一,环境准备 首先我们需要准备好Java环境,和win上的jdk环境(图形化界面如jconsole只有jdk中有)。 有这样一个类Prolem,每个线程都会带来100个垃圾对象,线程new完100…

用Rust打印杨辉三角

一、杨辉三角是什么? 杨辉三角是一个著名的数学图形,它展示了二项式系数的排列方式。 杨辉三角是一种将二项式系数以三角形阵列排列的数学图形,具有丰富的历史和数学意义。 杨辉三角的历史起源可以追溯到中国南宋时期,由数学家杨辉…

leetcode刷题——设计循环链表

题目要求我们设计循环队列,其特点是容量固定,队列循环,如图所示: 这里的队列我们以链表队列举例,对于循环,只需要把尾节点的指针指向头节点。重点是队列的容量固定:如何确定队列是否已满和空&am…

Kaggle赛题总结:Enefit - Predict Energy Behavior of Prosumers

文章目录 比赛介绍赛题任务评估指标数据集描述优胜方案第1名第6名第7名第10名第13名内容分享冠军tricktrick应用获胜方案里对trick的应用模型特征工程在线学习小结

AI视频教程下载:用ChatGPT制作 YouTube视频的指南

课程大纲: 面向 YouTuber 的 ChatGPT YouTube关键词研究 YouTube标题 YouTube缩略图 YouTube社区帖子 组织您的 YouTube 视频 本课程将通过两个不同领域的YouTube视频,展示如何使用Chat GPT来创建关键词、标题、缩略图、描述和社区帖子。 关键词研…

C++中调用python函数(VS2017+WIN10+Anaconda虚拟环境)

1.利用VS创建C空项目 step1 文件——新建——项目 step2 Visual C—— Windows桌面——Windows桌面向导 step3 选择空项目 step4 源文件——新建项——添加 step5 Visual C——C文件(.cpp) 2.配置环境 Step1. 更换成Release与X64 Step2. 打开项目属性&…

react18封装公共请求函数

如果里面要处理比如token过期,跳转登录这种情况的话,官方又说组件外不允许使用Hooks函数,这里可以这样做 使用redux 并新建一个store/index.ts import { configureStore, combineReducers } from reduxjs/toolkit import counterRouter fro…

Spring Boot进阶 - Starter原理

Spring Boot Starter的原理主要是为了简化Spring应用的配置和初始化过程,让开发者能够快速启动并运行应用,而不需要手动配置大量的XML或Java配置类。下面是Spring Boot Starter的核心工作原理: 自动配置(Auto-Configuration&#…

Facebook国内企业三不限白名单户/二不限/BM户

哈喽呀,今天是来给大家分享一下Facebook国内三不限白名单户/二不限/BM户都是啥? Facebook作为全球最大的社交媒体,同时也是各大跨境电商企业选择作为推广广告的平台,Facebook为了满足各大企业的需求,提供…

线性回归模型的解释及应用场景

线性回归模型是一种数学和统计方法,用于确定两种或两种以上变量之间的定量关系。下面是对线性回归模型的详解及其应用场景的说明。 一、线性回归模型详解 线性回归模型是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种…

mysql实战题目练习

1、创建和管理数据库 创建一个名为school的数据库。 列出所有的数据库,并确认school数据库已经创建。 如果school数据库已经存在,删除它并重新创建。 mysql> create database school; Query OK, 1 row affected (0.01 sec)mysql> mysql> sh…

【知识碎片】2024_05_14

本篇记录了两道关于位运算的选择题,和一道有点思维的代码题。 C语言碎片知识 求函数返回值,传入 -1 ,则在64位机器上函数返回( ) int func(int x) {int count 0;while (x){count;x x&(x - 1);//与运算} return c…

Web3时代的技术革新:区块链与人工智能的融合

随着科技的飞速发展,区块链和人工智能作为两大颠覆性技术正呈现出日益紧密的融合趋势。在Web3时代,这种融合将推动技术革新,引领着我们进入全新的数字时代。本文将深入探讨区块链与人工智能的融合,探索其在各个领域的应用前景和挑…

天猫卖家电话采集软件使用指南 电商爬虫解析

在电商领域中,了解竞争对手的联系方式十分重要。传统的方法是手动通过天猫网页逐一搜索对方店铺,并记录电话号码。但这种方法费时费力且效率低。因此,我们可以借助一款天猫卖家电话采集软件及电商爬虫进行自动化的信息收集。本文将为您介绍如…

253 基于matlab的液压位置控制源代码

基于matlab的液压位置控制源代码,有摩擦补偿,利用滑模控制器实现,神经网络逼近。最后实现位置角度和速度的控制。输出控制误差。程序已调通,可直接运行。 253 液压位置控制 滑模控制器 控制误差 - 小红书 (xiaohongshu.com)

【Work遇见Bug01】 - no module named ‘crowdposetools‘

问题 解决 去这个网址下载:CrowdPose 2. 进入anaconda的命令行环境,cd到刚刚那个文件夹里面 3. 修改setup.py代码,修改位置及内容如下图片 在conda的命令行运行如下: python setup.py build_ext --inplacepython setup.py buil…

IDC:2023年中国IT安全软件市场同比增长4.7%

IDC最新发布的《中国IT安全软件市场跟踪报告,2023H2》显示,2023年下半年中国IT安全软件市场厂商整体收入约为169.8亿人民币(约合23.5亿元美元),同比上升2.7%。结合全年数据,2023全年中国IT安全软件市场规模…

GitLab CI/CD的原理及应用详解(四)

本系列文章简介: 在当今快速变化的软件开发环境中,持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)已经成为提高软件开发效率、确保代码质量以及快速响应市场需求的重要手段。Gi…

安卓APP+TCP+服务器端

1、在.xml文件中添加权限 <uses-permission android:name"android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name"android.permission.INTERNET"/>2、修改显示界面 <?xml version"1.0" encoding"utf-8&…

初步了解json文件

来自wetab 的AI pro: JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式&#xff0c;但是它使用了类似于编程语言&#xff08;特别是J…