数据结构

大学已逐渐进入尾声,想回顾一下自己专业所学的内容,看到数据结构这些概念,也总是记不住,理解也不是很深刻。想借助写下这些来加深一些印象吧。以下一些相关的内容,来自王道的数据结构讲解。

基本概念
数据结构是相互之间存在一种或多种特定关系的数据元素的集合。这个概念对于我来说太过于深奥,也不能记住,于是我思考。举个例子,在食堂里吃麻辣香锅,我们需要排队,并且食堂阿姨会给你号码牌,我们吃麻辣香锅的人就是数据元素,这个号码牌就是我们的排队信息,我们之间通过号码牌存在一种特定关系,这种存在一种特定关系的集合,便是数据结构。所以可以看出,数据结构是个集合,不能单独存在。这里的数据元素是数据的基本单位,一个数据元素可有若干个数据项组成。吃麻辣香锅的人算是数据元素,我们具有以下数据项,比如姓名,年龄、号数。可以说数据元素也算是数据项的集合吧。
数据结构与数据对象
数据结构是一种或多种特定关系数据元素的集合,而数据对象是大范围的,是指具有相同性质的数据元素的集合。是数据的一个子集。这里我觉得应该这样理解,数据元素包括若干数据项,具有相同性质的数据项是数据项的一个子集。举个例子,学校食堂麻辣香锅同学排队的信息的集合是数据结构,在全国麻辣香锅顾客排队信息的集合便是数据对象,可以说数据结构算是数据对象的一个子集吧。
数据结构三要素
数据结构三要素包括:逻辑结构、物理结构(存储结构)、数据的运算。
逻辑结构
数据的逻辑结构可分为集合,线性结构,树形结构,图状结构(网状结构)。1.集合,不用多讲,吃麻辣香锅的同学便是集合。2.线性结构也比较容易理解。食堂吃饭需要排队,是一对一关系,除了第一个人,所有元素都有唯一前驱。除了最后一人,所有元素都有唯一后继。3。树形结构,数据元素是一对多的关系,比如公司老板他手下有若干名干部,每个干部下又有若干员工。4.图形结构,是多对多的关系,比如朋友这个集合,每个人有属于自己的朋友,我朋友的朋友不是我的朋友,这就是多对多的一种类型。
物理结构
物理结构也可称为存储结构,如何用计算机表示数据元素的逻辑关系?也就是如何用计算机存储?
数据的存储结构可分为顺序存储,链式存储、索引存储、散列存储。
1.顺序存储,把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现,可用来存储线性结构。
2.链式存储,逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。也可用来存储线性结构。
3.索引存储,在存储元素的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项一般形式是(关键字,地址)。也可用来存储线性结构。
4.散列存储,根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。
数据的存储结构会影响存储空间分配的方便程度、对数据运算的速度。,若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个元素在物理上可以是离散的。
数据的运算
施加在数据上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。
数据类型、抽象数据类型
数据类型是一个值的集合和定义在此集合上的一组操作的总称。
1.原子类型。其值不可再分的数据类型。
2.结构类型。其值可以再分解为若干成分的数据类型。
3.抽象数据类型(ADT)是抽象数据组织及与之相关的操作。ADT用数学化的语言定义数据的逻辑结构,定义运算。与具体的实现无关。
知识回顾与重要考点
数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容。

持续更新,未完待续…

什么是数据结构?对数据结构的理解相关推荐

  1. 【Java数据结构】通过Java理解和实现——无头双向链表

    ---------------------------------------------------------------------------------------------------- ...

  2. python需要学数据结构吗_Python新手学习基础之数据结构-对数据结构的认知

    什么是数据结构? 数据结构是指:相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 举个列子来理解这个数据结构: 数据可以比作是书本, 数据结构相当于书架,书存放在书架上, ...

  3. 自考数据结构和数据结构导论_我跳过大学自学数据科学

    自考数据结构和数据结构导论 A few months back, I decided I wanted to learn data science. In order to do this, I sk ...

  4. java 数据结构_Java数据结构学习方法

    Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? 数据结构: Data_Structure,它是储存数据的一种结构体,在此结构中储存一些数据,而这些数据之间有一定的关系. 而各数据元 ...

  5. 数据结构 (一) ----- 数据结构基本概念基于数组实现线性表

    相关文章: <数据结构 (一) ----- 数据结构基本概念&基于数组实现线性表> 文章目录 数据结构基本概念 一.逻辑结构 二.存储结构 三.数据结构定义 四.数据结构的通用的几 ...

  6. 考研数据结构笔记--数据结构和算法的基本概念

    考研数据结构笔记--数据结构和算法的基本概念 数据结构的基本概念 算法的基本概念 数据结构的基本概念 数据 数据是对客观事物的符合表示,在计算机科学中是指所有能输入到计算机中并且被计算机程序处理的符合 ...

  7. 数据结构 python的书推荐-为什么程序员一定要学数据结构?数据结构书单推荐~...

    原标题:为什么程序员一定要学数据结构?数据结构书单推荐~ 来自:程序员书库(ID:OpenSourceTop) 人们最初使用计算机是用来处理简单的数值计算问题,当你使用计算机来处理一个问题时,一般经过 ...

  8. mysql存储map数据结构_map数据结构

    Go map实现原理 - 恋恋美食的个人空间 - OSCHINA - 中文开源技术交流社区 https://my.oschina.net/renhc/blog/2208417 // A header ...

  9. Day739.GEO经纬度数据结构自定义数据结构 -Redis 核心技术与实战

    GEO经纬度数据结构&自定义数据结构 Hi,我是阿昌,今天学习记录的是关于GEO经纬度数据结构&自定义数据结构的内容,感谢您的关注和观看. Redis 的 5 大基本数据类型:Stri ...

  10. 数据结构——初识数据结构

    数据结构(计算机408考研科目) 首先我们提出一个问题:数据结构是在学习什么? 带着这个疑问我们来观察一下我们身边的世界. 从一日三餐,吃穿住行来看: 1.我们有时不想做饭时,我们可以打开手机去点外卖 ...

最新文章

  1. 转-Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
  2. linux 命令 kps,10个LINUX命令 超好用
  3. PEAR安装、管理及使用
  4. 1015 德才论 (25 分)(c语言)
  5. (线性基) bzoj 2460
  6. 集腋成裘-10-ECharts -未知-03
  7. OpenCV:透视变换
  8. 【GoLang】golang 最佳实践汇总
  9. 未成年人互联网普及率达99% 腾讯等倡议加强青少年网络素养教育
  10. c语言求阶层的某位数,求10000的阶乘(c语言代码实现)
  11. 2018_09_21_生活记录_参加人工智能大会
  12. MBlock开发环境搭建
  13. idea打字光标不跟随解决
  14. 老猿Python博客文章目录索引
  15. PDMS插件_三维地形工具
  16. [收藏]超实用压力测试工具-ab工具
  17. CS1503号错误是什么
  18. Springboot毕设项目酒店地下停车场管理系统47g66java+VUE+Mybatis+Maven+Mysql+sprnig)
  19. 家用无盘服务器打游戏,开20台的电竞网咖酒店,无盘服务器用千兆网卡够用吗?...
  20. window.showModalDialog();会弹出当前页面脚本发生错误部分解决方法

热门文章

  1. USB chirp信号测试
  2. 【方向盘】“江郎才尽”的周杰伦,出道已21周年
  3. 硕士研究生培养方案及课程大纲
  4. 2021王道考研pdf
  5. Java实现提取拼音首字母
  6. 英伟达(NVIDIA)控制面板不见了
  7. ucinet数据集格式
  8. Jqweui框架写的CRM配套app
  9. lorawan服务器通信协议,LoRaWAN协议(三)–Server端数据协议
  10. python编程师app_新技能:用 Python 写一个安卓 APP