一、问题背景
不管是计算机专业的考研初试还是工作面试,数据结构都是很重要的课程。而博主最近看的王道论坛2020的数据结构开篇就有按照逻辑结构和存储结构将各种数据结构进行分类,本文就结合所有知识点充分讲解各个数据结构之间的区别与联系。

二、相似概念的线性表区分
在数据结构考试题目中我们总是要区分这三个概念:线性表、顺序表、有序表、链表,甚至还有线性表的其他概念。
下图便是博主在结合王道论坛数据结构书本上以及网络上的相关线性表的概念做出的思维导图。

1.线性表
线性表是具有相同特性的数据元素的一个有限序列。线性表属于逻辑结构中的线性结构,它包括顺序表、链表、栈、队列等。

2.顺序表
顺序表是顺序存储结构的线性表,是把线性表中的所有元素按照其逻辑顺序依次存储到计算机存储器中指定位置开始的一块连续的物理地址的空间中。由于顺序表的逻辑地址与其物理地址皆相邻,故称为顺序表。
编程语言中的数组就是顺序表的一个典型实例。

3.链表
链表是链式存储结构的线性表,是用任意一组物理地址来存储数据元素,而数据元素之间的逻辑关系通过指针来表示。所以它的存储结构可以是连续的,也可以不是连续的。
一般我们说的链表都是不连续的。有一种用数组来表示的特殊链表,叫做静态链表,它的存储结构就是连续的。

4.有序表
我们很容易把有序表与顺序表、链表相提并论,其实这是错误的。因为顺序表、链表是根据线性表的存储结构(顺序或链式)来划分概念的,而有序表是根据线性表的数据元素的数值大小来划分概念,故有序表与顺序表、链表不是相互独立的,而是内容互相交错的。

有序表是指表中所有数据元素的数值以递增或递减方式有序排列,是数据元素的数值的有序性。
有序表只描述元素之间的逻辑关系,故为逻辑结构,因此有序表既可以顺序存储也可以链式存储。

例如,数组int array[3]=[1,2,3];是顺序存储结构的有序表。因为是数组,所以是顺序存储结构;因为数据元素[1,2,3]是从小到大排列,故是有序表。而单链表1->2->3则是链式存储结构的有序表。由这个例子可见:有序表与顺序表、链表不是相互独立的,而是内容互相交错的,我们不能把他们相提并论。

三、逻辑结构与存储结构的区分
在数据结构的考研真题和计算机笔试中,总有区分逻辑结构与存储结构的题目。
下图是博主总结的数据结构的三要素:逻辑结构、存储结构(物理结构)、数据运算的思维导图。

先说结论:线性表、有序表是逻辑结构;顺序表,链表是存储结构。

逻辑结构与存储结构的判定方法:当一个结构(如数组、链表、树、图),在逻辑结构中只有一种定义,而在物理结构中却有两种或多种定义,那么这个结构就属于逻辑结构;相反,当此结构在原有基础上加上了某种限定词(如二叉树->线索二叉树),使得其在物理结构中只有一种定义,那么这个结构就属于物理(存储)结构,或称为数据结构;

举例1:栈属于什么结构?
分析:栈在逻辑结构中只能属于线性结构,而在物理结构中它可以使用顺序存储(数组),也可以使用链式存储(链表),所以说栈是一种逻辑结构。
————————————————

三、逻辑结构与存储结构的区分相关推荐

  1. 【数据结构】数据结构的基本概念——逻辑结构、存储结构、抽象数据类型

    文章目录 一.基本概念和术语? 1.数据 2.数据元素 3.数据项(属性.字段) 4.数据对象 5.数据结构 二.逻辑结构和物理结构(存储结构) 1.逻辑结构 1)定义 2)分类(线性结构和非线性结构 ...

  2. 数据结构之逻辑结构与存储结构

    转自逻辑结构和存储结构 百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构.结合今天在复习过程中新的理解,主要总结一下逻辑结 ...

  3. 什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型

    一.什么是数据结构 1.数据结构的起源         数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储.组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以 ...

  4. 数据结构(一)逻辑结构和存储结构

    文章目录 数据结构 逻辑结构 集合结构 线性结构 树状结构 网络结构(图形) 物理结构(存储) 顺序存储结构 链式存储结构 索引存储结构 散列存储结构(哈希) 数据结构对性能的影响 数据结构 数据结构 ...

  5. 数据的逻辑结构和存储结构

    数据的逻辑结构合存储结构 一,逻辑结构 数据的逻辑结构是对数据元素之间逻辑关系的描述,它与数据在计算机中存储方式无关,根据数据元素之间的不同特性,可以对数据的逻辑结构进行分类 分类1:(选型结构和非线 ...

  6. 数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型的概念

    数据: 是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称.如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形.图像.声音.动画等通过特殊编码定义后的数 ...

  7. 数据结构 - 逻辑结构和存储结构

    程序=算法+数据结构 N.沃思(Niklaus Wirth)教授提出: 程序=算法+数据结构 以上公式说明了如下两个问题: (1)算法决定如何构造和组织数据(算法→数据结构). (2)算法的选择依赖于 ...

  8. 如何准确地判断逻辑结构、存储结构、线性结构和物理结构

    对于这些结构确实令人头疼不已,下面我们来彻底解决这个问题,以后碰到了能准确的区分! 总体分为两大类,一类是实际的,就是在电脑上是怎么存储的.一类是虚的,是人们想象这些节点的关系是什么样的.这两大类共同 ...

  9. 数据结构概述(逻辑结构与存储结构概念详解)

    目录 一.一些基本概念 二.逻辑结构 1.集合结构: 2.线性结构: 1)线性表: 2)栈 3)队列 4)串 3.非线性结构: 1)数组 2)广义表 3)树 4)堆 5)图 三.物理结构/存储结构 1 ...

最新文章

  1. archlinux常用的包管理器
  2. 【计算几何】多边形点集排序
  3. axure文件如何加密_rp文件命名也可能导致文件无法打开
  4. boost::multi_array模块实现创建负步幅视图的小测试
  5. openresty源码剖析——lua代码的执行
  6. 微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)...
  7. 从减少DNS查找来优化网站
  8. 【Unity与23种设计模式】访问者模式(Visitor)
  9. Android下OpenSLES播放PCM音频文件
  10. Android最常用的控件ListView(详解)
  11. 解决Unresolved external ‘AlphaBlend‘ referenced的办法
  12. python加不加分号区别_python加分号吗
  13. 编译器对源代码的编译过程
  14. 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!
  15. 【有趣的历史】为什么超链接是蓝色的?
  16. 植物神经紊乱、焦虑症和抑郁症之间有哪些区别呢?
  17. Skywalking系列博客6-手把手教你编写 Skywalking 插件
  18. APP二维码微信扫描后无法下载的问题 微信扫码(扫一扫二维码)下载不了app怎么解决
  19. .net 连接ORACLE中文显示乱码解决方案
  20. 7-10 jmu-c-二进制转10进制 (20分)

热门文章

  1. SIGIR 2022 | 基于用户价格偏好及兴趣偏好的会话推荐
  2. mxnet的rec数据中还原图片
  3. 记一次c#调matlab时初始化异常的解决过程
  4. c语言实现海龟爬行程序
  5. Docker安装Oracle_11g的方法
  6. 苹果CMS付费视频影视网站模板带完整会员中心模板
  7. 如何修改notepad默认编码
  8. Listary中使用Everything搜索
  9. 罗技驱动退出宏失效怎么办?
  10. python使用手册<5>函数