二叉树的链式存储——补充

news2024/11/14 6:56:05
/二叉树的结点(链式存储)
typedef struct BiTNode{
    ElemType data;      //数据域
    struct BiTNode*lchild,*rchild       //左、右孩子指针
}BiTNode,*BiTree;

如下图进行存放:

 

 所以,一个二叉树有n个结点的话,那总共就会有2n个指针域,n个结点的二叉链表共有n+1个空链域。

struct ElemType{
    int value;
};

typedef struct BiTNode{
    ElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode ,*BiTree;


//定义一棵空树
BiTree root = NULL;


//插入根节点
root = (BiTree) malloc(sizeof(BiTNode) ) ;
root->data = {1};
root->lchild = NULL;
root->rchild = NULL;


//插入新结点
BiTNode * p = (BiTNode *) mallos(sizeof(BiTNode) ) ;
p->data = {2};
p->lchild = NULL;
p->rchild = NULL;
root->lchild_ = p;       //l作为根节点的左孩子

如果在应用的场景当中经常需要逆向的找到父节点的话,如下代码进行优化:

/二叉树的结点(链式存储)
typedef struct BiTNode{
    ElemType data;        //数据域
    struct BiTNode *lchild,*rchild;      //左、右孩子指针
    struct BiTNode *parent;              //父节点指针
}BiTNode,*BiTree;

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

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

相关文章

怎么做预约小程序_探索我们的全新预约小程序

在繁忙的现代生活中,无论是想预约一次美容护理,还是预定一家心仪的餐厅,亦或是安排一次专业的咨询服务,我们都希望能够在最短的时间内完成这些操作,节省时间和精力。如今,一款全新的预约小程序应运而生&…

鸿蒙语言TypeScript学习第16天:【类】

1、TypeScript 类 TypeScript 是面向对象的 JavaScript。 类描述了所创建的对象共同的属性和方法。 TypeScript 支持面向对象的所有特性,比如 类、接口等。 TypeScript 类定义方式如下: class class_name { // 类作用域 }定义类的关键字为 class&am…

AI天使汇联合150家顶级基金、战投,征集优秀AI创业项目

鉴于AI天使汇主办的2024年3月期优秀项目征集活动效果超出预期,3月活动最后TOP20路演者中已有多家快速拿到了TS。 路演活动质量受到了AI创业公司和基金/战投伙伴的高度评价,现在开始四月期活动报名! 本期征集活动联合的顶级基金和战投数量增加到了150家…

MGRE-OSPF接口网络类型实验

OSPF接口网络类型实验 一,实验拓扑 初始拓扑: 最终拓扑: 二,实验要求及分析 要求: 1,R6为ISP只能配置IP地址,R1-R5的环回为私有网段 2,R1/R4/R5为全连的MGRE结构,R…

儿童护眼台灯怎么选?五款必选的高口碑护眼台灯推荐

儿童台灯,想必大家都不会陌生了,是一种学生频繁使用的小灯具,一般指放在桌面用的有底座的电灯。随着近年来儿童青少年的视力急速下滑,很多家长都会选择给孩子选择一款合适的护眼台灯,以便孩子夜晚学习能有个好的照明环…

Stable Diffusion教程:LoRA模型

LoRA模型是一种微调模型,它不能独立生成图片,常常用作大模型的补充,用来生成某种特定主体或者风格的图片。 下载模型 在模型下载网站,如果模型是LoRA模型,网站会特别标识出来。以 liblib.ai为例: 模型左…

three.js捋文档的记录笔记(六):场景 几何体 材质 物体 相机 渲染器的简单理解

三维场景Scene const scene new THREE.Scene();物体形状:几何体 Geometry //创建一个长方体几何对象Geometry const geometry new THREE.BoxGeometry(100, 100, 100); 物体外观:材质Material //创建一个材质对象Material const material new THREE.M…

Spring Boot 学习(3)——Spring Initializr 创建项目问题解决

产生问题的原因,各种的版本都较老,所以导致出现问题。目前暂未打到合适的教程,按老教程学起来先。 小白瞎学,大神勿喷! 再次强调环境:maven 3.3.9、jdk 1.8、idea 2017、Spring 4.3.13、Spring Boot 1.5.…

最优算法100例之47-从尾到头打印单链表

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 从尾到头打印单链表 题解报告 方法1:头插法逆置单链表然后依次打印;注意此处是不带头结点的单链表,带头节点的操作稍微有…

ELK企业级日志分析系统(elasticsearch+logstash+kibana)

目录 一.ELK概述 1.定义 (1)ElasticSearch (2)Kiabana (3)Logstash (4)Filebeat 2.filebeat结合logstash带来好处 3.为什么要是用ELK? 4.完整日志系统基本特征 …

c++ - 类的默认成员函数

文章目录 前言一、构造函数二、析构函数三、拷贝构造函数四、重载赋值操作符五、取地址及const取地址操作符重载 前言 默认成员函数是编译器自动生成的,也可以自己重写,自己重写之后编译器就不再生成,下面是深入了解这些成员函数。 一、构造…

#381. 四边形继承练习

太爽了 甚至还现学了叉积判断线段是否相交和求面积的方法 先给出我的代码&#xff1a; #include <iostream> #include <vector> #include <iomanip> #include <cmath>using namespace std;//下面需要补充多个类的声明及实现代码 const double EPS 1…

STM32之FreeRTOS移植

1.FreeRTOS的移植过程是将系统需要的文件和代码进行移植和裁剪&#xff0c;其移植的主要过程为&#xff1a; &#xff08;1&#xff09;官网上下载FreeRTOS源码&#xff1a;https://www.freertos.org/ &#xff08;2&#xff09;移植文件夹&#xff0c;在portable文件夹中只需…

2024年文化、历史与人文艺术与社会发展国际会议(CHHASD2024)

2024年文化、历史与人文艺术与社会发展国际会议(CHHASD2024) 会议简介 2024年国际文化、历史、人文、艺术与社会发展会议&#xff08;CHHASD2024&#xff09;将在中国武汉举行&#xff0c;主题为“文化、历史&#xff0c;人文、艺术和社会发展”。CHHASD2024汇集了来自世界各…

【C语言】指针篇-初识指针(1/5)

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 **内存和地址(知识铺垫(了解即可))**如何理解编址**指针变量*…

故障诊断 | 基于LSTM的滚动轴承故障诊断

效果 概述 基于LSTM(长短期记忆网络)的滚动轴承故障诊断是一种利用深度学习技术来预测滚动轴承是否存在故障的方法。下面是一个基本的滚动轴承故障诊断的流程: 数据收集:首先,需要收集与滚动轴承相关的振动信号数据。这些数据可以通过传感器或振动监测系统获取。收集的数…

OSI七层网络模型 —— 筑梦之路

在信息技术领域&#xff0c;OSI七层模型是一个经典的网络通信框架&#xff0c;它将网络通信分为七个层次&#xff0c;每一层都有其独特的功能和作用。为了帮助记忆这七个层次&#xff0c;有一个巧妙的方法&#xff1a;将每个层次的英文单词首字母组合起来&#xff0c;形成了一句…

c# .net 香橙派 Orangepi GPIO高低电平、上升沿触发\下降沿触发 监听回调方法

c# .net 香橙派GPIO高低电平、上升沿触发\下降沿触发 监听回调方法 通过gpio readall 查看 gpio编码 这里用orangepi zero3 ,gpio= 70为例 当gpio 70 输入高电平时,触发回调 c# .net 代码 方法1: Nuget 包 System.Device.Gpio ,微软官方库对香橙派支持越来越好了,用得…

构建第一个ArkTS应用之@BuilderParam装饰器:引用@Builder函数

当开发者创建了自定义组件&#xff0c;并想对该组件添加特定功能时&#xff0c;例如在自定义组件中添加一个点击跳转操作。若直接在组件内嵌入事件方法&#xff0c;将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题&#xff0c;ArkUI引入了BuilderParam装饰器&…

2024年网络安全行业全景图 | 亚信安全实力占据62领域

近日&#xff0c;安全牛《中国网络安全行业全景图》&#xff08;第十一版&#xff09;正式发布。 本次发布的全景图&#xff0c;包含16个一级安全分类&#xff0c;108个二级细分领域&#xff0c;共收录454家国内安全厂商&#xff0c;细分领域共收录2413项。亚信安全凭借在云安全…