总结:
数据的逻辑结构、数据的存储结构及数据的运算这三方面是一个整体。孤立地去理解一个方面,而不注意它们之间的联系是不可取的。

逻辑结构可以分为:线性结构和非线性结构。
对于一些现实数据项,在讨论其数据结构时我们一般先看其逻辑结构是怎样的,如果这些数据项是线性结构即每个数据项只有一个前驱节点并且只有一个后继结点,则我们在逻辑结构中的线性结构中寻找合适的数据结构对其进行处理(比如线性表,栈、队列等等);如果这些数据项是非线性结构即每个数据项不止有一个前驱或者后继,这时我们就要在逻辑结构中的非线性结构中寻找合适的数据结构对其进行处理(比如图、集合等等)。

存储结构可以分为:顺序存储、链式存储、散列存储和索引存储,其中数组作为顺序存储的典型应用,链表作为链式存储的典型应用。
在确定了数据所采用的逻辑结构之后,接下来就要对其进行存储,基本的存储方式有数组和链表两种,用这两种存储方式能够实现大部分数据的存储,不管是线性结构或者非线性结构。
存储结构是数据结构不可缺少的一个方面:同一逻辑结构的不同存储结构可冠以不同的数据结构名称来标识。

【例】线性表是一种逻辑结构,若采用顺序方法的存储表示,可称其为顺序表;若采用链式存储方法,则可称其为链表;若采用散列存储方法,则可称为散列表。
数据的运算也是数据结构不可分割的一个方面。在给定了数据的逻辑结构和存储结构之后,按定义的运算集合及其运算的性质不同,也可能导致完全不同的数据结构。

【例】若对线性表上的插入、删除运算限制在表的一端进行,则该线性表称之为栈;若对插入限制在表的一端进行,而删除限制在表的另一端进行,则该线性表称之为队列。更进一步,若线性表采用顺序表或链表作为存储结构,则对插入和删除运算做了上述限制之后,可分别得到顺序栈或链栈,顺序队列或链队列。

数据结构的简单理解(4)相关推荐

  1. 数据结构的简单理解(1)

    一直以来对数据结构都不是特别理解,前段时间正好看到一位大神的解说,让自己对数据结构有了进一步的认识,故在此记录,希望能够帮助更多人去理解数据结构. 数据结构一般包含如下三个方面: 1.数据的逻辑结构 ...

  2. 数据结构的简单理解(3)

    数据的存储结构可以分为以下四种: (1)顺序存储方法 该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现. 由此得到的存储表示称为顺序存储结构 (Se ...

  3. 数据结构的简单理解(2)

    数据逻辑的结构: 在不产生混淆的前提下,我们常常将数据的逻辑结构称之为数据结构,这样的话数据结构可以分为两类:线性结构和非线性结构(不掺杂存储关系). 1.线性结构: 线性结构:若结构是非空集,则有且 ...

  4. linux文件系统只有几k,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  5. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  6. 大话数据结构第一章理解

    一.概念          1.1 数据概念 数据:计算机能识别的能运算的符号,各种数据对象的集合--可以简单理解为各种类型的数组的集合. 数据对象:是性质相同的同一类型的数据元素的集合--可以简单理 ...

  7. 数据库|第一范式、第二范式、第三范式、BC范式、第四范式简单理解

    数据库|第一范式.第二范式.第三范式.BC范式.第四范式简单理解 在设计数据库的时候,虽说将我们要的数据正确完整导入数据库是很关键的,但是对于数据库的设计者来说,如何将大量数据合理有效正确地导入数据库 ...

  8. 简单理解selcet模型

    前期知识: 在开始接触select之前,你需要先对IO的同步,异步,阻塞,非阻塞有个基本的了解,知道什么是IO多路复用.下面这篇文章可以帮助你快速区分这几种模型:IO - 同步,异步,阻塞,非阻塞 ( ...

  9. CPU核心数线程数、程序进程线程、并发并行的简单理解

    CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...

最新文章

  1. 福师计算机导论在线作业一,福师《计算机导论》在线作业一..doc
  2. 创建数据库指定编码集
  3. java 创建者设计模式_Java设计模式之创建者模式分享热爱编程,程序人生
  4. 数据字典模板_巧用单元格保护功能+字典技术,制作高大上的人员信息录入表...
  5. BERT源码分析PART III
  6. vue让元素固定_vue 监听dom元素的滚动事件 实现某元素吸顶或者固定位置显示
  7. 91.解码方法(力扣leetcode) 博主可答疑该问题
  8. N9程序开发-生成项目
  9. 没有基础一样可以一次性拿下CCSK认证?快来看这里!
  10. 我的大一C++学习笔记
  11. 好用的Mac免费视频后期软件推荐
  12. Linux 基础入门 07
  13. Margin对span无效
  14. 你必须知道的3D建模流程,最后一步是关键
  15. opencv-Python 目标跟踪(一)《Meanshift算法、Camshift算法》
  16. mysql master_log_file_change master 未指定master_log_file
  17. android 7.1 去除分屏功能
  18. 高效| 工厂如何做好设备管理工作?看这篇就够了!
  19. 数值法求解最优控制问题(〇)——定义
  20. Android 开发周志 其一

热门文章

  1. linux日志使用方法,Linux 日志终极指南
  2. java加法器_javacc例子:加法器
  3. getView的解析流程
  4. AOP 中必须明白的概念-切面(Aspect)
  5. 再述autowiring
  6. 字符流写数据的5种方式
  7. OpenResty安装
  8. MapReduce案例-wordcount-JobMain代码
  9. 数据库-优化-MYSQL执行引擎介绍
  10. Spring Boot整合@Cacheable注解使用