当前位置: 首页 > news >正文

【每日一题 | 数据结构 | 树的转换与遍历】

重要知识点讲解

  1. 考研中只会涉及到两种树的存储,一是二叉树的存储方式,二是一般树的存储方式。
  2. 二叉树的存储方式,主要有两种:
    1. 链表存储:定义一个结构体,包含数据和左右节点的指针,指针将多个节点链接为一个二叉树。
struct BTree{int data;struct BTree* lchild;struct BTree* rchild;
};
2. **数组存储**:用一个线性表,将二叉树的节点按照层次遍历的顺序依次存储—从上到下,从左到右。
  1. 一般树的存储方式**。**主要有三种

    1. 双亲表示法:每个节点都有两个部分组成,分别是自身的数据和其父结点

      在这里插入图片描述

    2. 孩子表示法:把每个结点的孩子结点都用链表串起来

      在这里插入图片描述

    3. 孩子兄弟表示法:这个存储方式是用来实现树与二叉树转换的。记住一个口诀:“左孩子,右兄弟”,如图所示节点的左指针指向第一个孩子,右指针指向其的兄弟(如果有多个兄弟依次串联)

      在这里插入图片描述

  2. 对于森林的处理,一般会将森林转换为二叉树存储,与孩子兄弟表示法类似:将每一棵树的根节点看作兄弟结点,然后通过**”左孩子,右兄弟“**的口诀进行转换

    在这里插入图片描述

题目

【2014统考真题】将森林F转换为对应的二叉树T,F中叶节点的个数等于()

A. T中叶结点的个数

B. T中度为1的结点个数

C. T中左孩子指针为空的结点个数

D. T中右孩子指针为空的结点个数

讲解笔记

所有概念性题目,没有给出具体树的,都用枚举树发(化抽象为具体)的方法来做。

在这里插入图片描述

在这里插入图片描述

逻辑分析一下:森林中叶子结点是没有孩子的,用左孩子右兄弟方法来转化,转化为二叉树里面就没有左孩子了,所以二叉树中没有左孩子的结点为森林中的叶子结点。

讲解视频链接:【每日一题 | 数据结构 】 树的存储与森林转换算法


http://www.mrgr.cn/news/8352.html

相关文章:

  • Oracle SQL - 合并重叠的期间
  • 姿态识别 python 效果好,提供多种精准模型欢
  • C 语言的发展
  • 智慧社区信息系统建设:数据可视化与原型设计的力量
  • 代码随想录算法训练营第50天|卡码网 98. 所有可达路径
  • 项目开始后,拒绝客户提出的新需求是否会违约?
  • 独孤思维:我找到了可以一辈子赚钱的项目
  • 数据仓库系列 1:什么是数据仓库,它与传统数据库有什么不同?
  • AICon 全球人工智能与机器学习技术大会参会有感
  • Cargo: Rust的包管理和构建工具
  • SpringBoot集成kafka开发-消息消费的分区策略(消费者如何判断从哪个分区中消费消息的?)
  • “智汇论坛“——基于 Spring 前后端分离版本的论坛系统
  • Redis高级----主从、哨兵、分片、脑裂原理
  • 深度学习100问3-什么是共现矩阵及其作用
  • 后端Web之登录校验(上篇)
  • 【机器学习】数据预处理、特征缩放以及有偏分布的基本概念
  • 【HTML】为网页添加列表和超链接
  • nvm 安装老的node,npm版本
  • OSPF路由配置--多区域
  • 【c++】用if-else语句模拟法律中对于“防卫行为”