磁盘存储链式的B树和B+树

一、数据结构解释

B树访问4G内存地址。
B树性质:

  1. 根节点至少有两个子节点。
  2. 每个非根、非叶子节点有 k 个子节点,其中 t-1 <= k <= 2t-1。t 是称为最小度数(minimum degree)的参数,决定了B树的节点大小。
  3. 所有叶子节点都在同一层,并且不存储数据,只存储关键字和指向数据的指针。
  4. 非叶子节点除了指向子节点的指针外,还存储关键字。

B+树性质:

  1. 每个非叶子节点最多有n个子节点(n ≥ 2)。
  2. 每个非叶子节点包含k个关键字,其中 k + 1 个指针指向子节点(k ≥ 1)。
  3. 所有关键字按照升序排列,对于非叶子节点,关键字对应子树中的最大关键字。
  4. 所有叶子节点通过链表连接,形成一个有序链表,叶子节点存储实际的数据记录。
  5. 所有叶子节点没有孩子指针(即为外部节点或终端节点)。

二、背景知识的介绍

内存与磁盘的区别

  1. 功能:内存是计算机用于临时存储和快速读写数据的地方。它用于存储当前正在运行的程序、操作系统和数据,以供CPU快速访问。磁盘则用于长期存储大量数据,包括操作系统、应用程序、文件和其他用户数据。

  2. 访问速度:内存的读写速度非常快,在纳秒级别,因为内存直接连接到CPU。而磁盘的访问速度相比之下较慢,以毫秒或更长时间计算,因为数据需要通过机械部件或芯片来进行读写。

  3. 持久性:内存中存储的数据是临时存储的,当计算机断电或重新启动时,内存中的数据将丢失。相比之下,磁盘存储是持久的,即使计算机断电或重新启动,数据仍然会保留在磁盘中。

二、为什么内存中数据可以直接访问?但是磁盘中不可以呢?
内存具有随机访问能力和直接寻址的特性。

  1. **随机访问能力:**内存中的数据存储是以连续的地址区域进行组织的。每个内存单元都有唯一的地址,通过这个地址可以直接定位到所需的数据。这种随机访问的能力使得我们可以以常量时间复杂度 O(1) 的方式读取或写入特定地址的数据。
  2. **直接寻址:**内存中的数据可以直接通过其物理地址进行寻址。计算机系统使用内存管理单元(Memory Management Unit,MMU)将逻辑地址转换为物理地址。MMU负责将逻辑地址映射到物理地址空间中的相应位置,从而实现对内存中数据的直接寻址。这样,程序可以通过使用逻辑地址来访问内存,而不需要关心具体的物理位置。
    磁盘等其他存储介质由于访问速度较慢,不具备直接寻址的能力,需要使用更复杂的机制进行数据读取和写入。
  3. 物理结构:磁盘是由一系列盘片组成的,每个盘片上都有磁道和扇区。数据存储在扇区中,而要访问特定扇区中的数据,需要通过物理磁头移动到相应的磁道上。这种物理结构导致了磁盘访问速度较慢,与内存相比更加耗时。
  4. 顺序访问:磁盘的读取和写入是按照物理磁头的位置顺序进行的,而不是根据地址直接寻址。要访问特定扇区中的数据,需要先找到目标磁道,然后等待磁盘旋转将目标扇区转到磁头下方进行读取。这种顺序访问的方式导致了磁盘的访问速度相对较慢,并且无法像内存那样直接定位到所需数据的地址。
  5. 文件系统管理:磁盘上的数据通常由文件系统进行管理和组织。文件系统使用索引数据结构(如二叉树、哈希表等)来记录文件和目录的位置信息,以便能够快速查找和访问数据。因此,磁盘的数据访问往往需要经过文件系统的解析和索引操作,而不是直接通过地址进行访问。

三、 完全二叉树以及平衡二叉树

  1. 完全二叉树:叶子节点均在同一层;除了最后一层,其他层的节点都是满的;节点的排列符合从上到下从左到右的排列顺序。
  2. 平衡二叉树:每个节点的左子树以及右子树高度差不超过1.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值