博客
关于我
大话数据结构——第五章树读书笔记
阅读量:512 次
发布时间:2019-03-07

本文共 836 字,大约阅读时间需要 2 分钟。

树是一种非常重要的数据结构,它在计算机科学中广泛应用于数据存储和处理。拆解树知识点可以从以下几个方面展开:

1. 树的定义

树是一种抽象数据结构,具有以下特点:

  • 任意节点(非根节点)恰好有一个父节点
  • 节点之间通过父节点和子节点的关系连接
  • �uthorizer: 根节点没有父节点,叶子节点没有子节点

树的结构可以用来表示层次化的数据,如文件目录、树形图、生物树等。

2. 树的存储结构

为了方便地存储和访问树的节点,通常可以选择以下存储结构:

  • 数组存储:实用,通过节点编号快速定位节点的位置
  • 链表存储:灵活,适合动态增减节点

数组存储的优点是定位节点简单,但因为节点总数已知时,需事先分配内存空间。链表存储灵活,但在大数据量时可能比数组慢。

3. 二叉树

二叉树是树的重要扩展,具有以下特点:

  • 每个节点最多有两个子节点(左、右)
  • 具体实现方式有顺序存储(数组或链表)

二叉树广泛应用于数据结构排序、查找和图形应用,如 AVL 树和平衡树。

4. 线索二叉树

线索二叉树是一种与线索表类似的结构,结合了节点的信息,用于内存存储数据特征,提高查找效率。线索树的优点是直接通过公式定位节点,节省时间;缺点是占用较多内存。

5. 树与森林的关系

  • 森林由多个不相连的树组成
  • 转换树与森林:需要处理不完整节点,可能叶节点间断
  • 遍历森林可以使用深度优先或广度优先策略

6. 树的遍历

树的遍历是处理树结构的重要方法:

  • 深度优先搜索(DFS):先处理子节点再处理当前节点,如前序遍历
  • 广度优先搜索(BFS):按层次处理节点,如层序遍历

遍历的目的是执行特定操作,如查找节点、统计数据等。

7. 赫夫曼树及其应用

赫夫曼树是一种基于优先队列优化的数据结构,用于数据压缩和加密。其核心思想是最小化节点合并成本,具有频率较高的节点合并较少位数,从而节省存储空间。赫夫曼编码广泛应用于文件压缩、通信等领域。

通过以上拆解,树知识点涵盖了数据结构的基础,了解树的各个方面有助于更好地应用于实际问题。

转载地址:http://ubjnz.baihongyu.com/

你可能感兴趣的文章
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
Nginx Location配置总结
查看>>
Nginx 反向代理解决跨域问题
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
nginx 常用配置记录
查看>>
Nginx 我们必须知道的那些事
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx的是什么?干什么用的?
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NI笔试——大数加法
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
NSSet集合 无序的 不能重复的
查看>>