关系数据库中常用的数据结构

本文介绍了关系数据库中常用的数据结构,包括线性数据结构如数组、链表、队列和堆栈,以及树形结构如二叉树、平衡二叉树和B+树。此外,还提到了字典树和哈希表在数据存储和查找中的应用。线性数据结构中,数组在关系数据库中广泛应用但访问效率较低,链表、队列和堆栈各有其独特操作特性。树形结构提供了一对多的关系,便于数据存储和查找。字典树适合字符串的统计和查找,而哈希表则能快速查找记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构是元素之间的一种关系。有四种基本的数据结构。线性数据结构,树形数据结构,集合数据结构,图形数据结构



其中线性数据(元素之间一对一的关系)结构又细分为,数组,链表,队列,堆栈。先详细讨论下线性数据结构的特点

1.数组:array,关系数据库中数组的应用非常广泛,一个table就可以看作是一个二维数组。但是数组的访问效率较低,需要遍历所有数据才能找到满足条件的数据。

2.链表:数据元素的增加,删除可以在链表的任意位置完成(插队)

3.队列:只能在队尾插入,队首删除(

4.栈:只能在队首进行插入和删除的动作(子弹夹)


树形结构:树形结构有利于数据的存储和查找。数据元素之间一对多的关系,常见类型又树,比如二叉树,平衡二叉树,B+树


二叉树,最多有2个分支,而平衡二叉树,保证每个节点都有2个分枝,

B+树 常用于文件系统中:

(1)有n棵子树的节点含有n个关键字;
(2)所有的叶子节点包含了全部关键字的信息,及指向这些关键字记录的指针,且叶子节点本身按关键字大小自小到大顺序链接;
(3)所有非终端节点可以看成是索引部分,节点中仅含有其子树(根节点)中最大(或最小)关键字,所有B+树更像一个索引顺序表;
(4)对B+树进行查找运算,一是从最小关键字起进行顺序查找,二是从根节点开始,进行随机查


字典树是一种以树形结构保存大量字符串。以便于字符串的统计和查找,经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。具有以下特点:
(1)根节点为空;
(2)除根节点外,每个节点包含一个字符;
(3)从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
(4)每个字符串在建立字典树的过程中都要加上一个区分的结束符,避免某个短字符串正好是某个长字符串的前缀而淹没。

散列表(hash table):

若结构中存在关键字和键值相等的记录,则该记录必定在hash 函数的存储位置上。由此不需要比较便可以直接取得所查记录。这个对应关系为hash function,按这个思想建立的表示hash表


引用:http://blog.youkuaiyun.com/wypblog/article/details/8076324

最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。

注意:

  • 堆中任一子树亦是堆。
  • 以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。

下图分别给出几个最大堆和最小堆的例子:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值