数据结构概述

专栏原创出处:github-源笔记文件 github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。

1.数据结构

相互之间存在一种或多种特定关系的数据元素的集合称为「数据结构」。按照视点的不同,数据结构可以分为「逻辑结构」和「存储结构」。

2.逻辑结构

数据对象中数据元素之间的相互关系称为「逻辑结构」。

2.1 逻辑结构的分类

  • 线性结构:
    数据元素之间是一对一的关系。

  • 树形结构:
    数据元素之间存在一种一对多的层次关系。

  • 图形结构:
    数据元素是多对多的关系。

  • 集合结构:
    数据元素除了同属于一个集合外,他们之间没有其他关系。 各数据元素之间是平等的,共同属性是“同属于一个集合”。

2.2 常见的数据逻辑结构层次关系图

3.存储结构

逻辑结构指的是数据间的关系,而存储结构是逻辑结构的存储映像。通俗的讲,可以将存储结构理解为逻辑结构用计算机语言的实现。常见的存储结构有顺序存储、链式存储、索引存储以及散列存储(哈希表)。

  • 顺序存储:将数据元素存放在地址连续的存储单元中,其数据间的逻辑关系与物理关系是一致的。常见的数组采用顺序存储结构。优点:节省空间,可以实现随机存取;缺点:插入、删除时需要移动元素,效率低。

  • 链式存储:将数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。常见的链表采用链式存储结构。优点:插入、删除灵活;缺点:不能随机存取,查找速度慢。

4.逻辑结构和存储结构的区别

这两者并不冲突,一个指的是数据之间的关系,而另一个指这种关系在计算机中的表现形式。

比如,线性表中的栈,数据元素之间的关系是一对一的,除头和尾结点之外的每个结点都有唯一的前驱和唯一的后继,这体现的是逻辑结构;
而对于栈中的结点来说,它们可以顺序存储(也就是顺序栈),取一段连续的存储空间,将栈结点按顺序存入,每个结点和其前驱和后继在物理上都是相邻的。
同时,栈结点也可以链式存储(链栈),每个结点中包括数据域和指针域,而指针域就是用来指向其后继的,在访问时就可以通过指针来找到其后继进行访问,每个结点之间物理上可以相邻也可以不相邻。

参考

  • 《大话数据结构》 程杰著
参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:Age of Ai 设计师:meimeiellie 返回首页

打赏作者

2.wa

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值