数据结构--逻辑结构

数据结构分类

  1. 线性结构
    1. 线性表
  2. 非线性结构
    1. 集合

线性结构

定义:数据结构中的元素存在一对一的对应关系,有唯一的首位,并且每个数据的上线衔接是唯一的。
常见的顺序结构有:线性表、栈、队列、双队列、一维数组(这里注意),串

线性表在不同的存储结构下体现不同,顺序存储结构下,体现为顺序表,链表存储结构下,单向链表,双向链表等都是线性表

非线性结构

树结构

树结构是一类重要的非线性数据结构,其中以二叉树最为常用,树是以为分支关系定义的层次结构,它为计算机应用中出现的具有层次关系或者分支关系的数据提供了一种自然的表示方法,用树结构描述的信息模型在客观世界普遍存在。
在这里插入图片描述

  1. 二叉树
    每一个结点下都有左右之分的树结构,没一个结点下最多两个子结点,最少没有
    在这里插入图片描述
    完全二叉树:所有子结点都在左侧
    在这里插入图片描述
    满二叉树:终端结点(叶结点)都在最底层,并且每个父结点下都有两个子结点

在这里插入图片描述

  1. B树
    定义:B树是一种平衡多叉树,主要用于查询。m阶B树(每个结点下最多有m个子结点)满足如下条件:
    1. 根结点至少有两个子女
    2. 每个根结点所包含的关键字个数j满足:(m/2)-1 < j < m-1;
    3. 除根结点外的所有结点(不包括叶子结点)的度数正好是关键字总数加1,古内部子树个数k满足:(m/2)<= k <= m;
    4. 所有的叶子结点都位于同一层
      上面的定义是百度百科上的,《算法导论》第3版第18章中的B树定义:
    5. 所有叶子结点到根结点的路径长度相同,即具有相同的高度;
    6. 每个非叶子和非根结点(即内部结点)至少有m-1个孩子结点;根至少2个孩子
    7. 每个结点最多有2m个孩子节点。
    8. 每个结点内的键都是递增的
    9. 每个结点的孩子比key的个数多1
      使用方法,查找数据时,将所有的非根结点中的关键字取出,然后找寻是否存在符合范围的根结点,再进行一一对比。
      在这里插入图片描述
  2. B+树
    定义:B+树是B树的改善结构,在满足B树的要求下,还满足如下要求:
    1. 有K个子树的中间结点包含K个元素(B树种是K-1个元素),每个元素不保存数据,只用来索引,所有的数据都存在在叶子结点
    2. 所有的叶子结点种包含了全部的元素的信息,及指向含有这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接
    3. 所有的中间节点元素都同时存在于子节点,在子结点中是最大(或最小)元素
      对比B树的优势:查找迅速,存储结构简单,查询稳定

数据结构中的元素存在多对多的相互关系
常见的数据机构有:有向无环图、二元决策图、无向图

在这里插入图片描述

集合

定义:集合的定义是由一组无序且唯一(即不能重复)的项组成的。不包含任何元素的集合就叫做空集。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Michael·Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值