目录

数据结构的基本概念和术语

1.数据

2.数据元素

3.数据项

4.数据对象

逻辑结构和物理结构

抽象数据类型

总结


在这里说一下,大学的时候学习过数据结构,但是根本不深入,现在重新学习一遍数据结构和算法知识,主要是为了明年的秋招做准备,因此将最近学习过的知识在博客上重写一遍,加深记忆,也是锻炼自己的思维能力,提升代码量。

因为大话数据结构这本书是基于C语言来描述的,因此对于大部分学习过C、C++、C#、JAVA等语言的同学来说,理解起来不会很吃力。另外因为各种语言都有共通性,因此只要理解算法的核心思想,再在各种语言编译器中复现是相对容易得事情。废话不多说,下面开始大话数据结构第一章重要知识点的讲解和总结。

  • 什么是数据结构

数据结构简单来说就是在计算机上要来处理某种存储、组织数据的方式,计算机中的数据之间不是杂乱无章的,也不是毫无关系的,相反,数据要进行交互,就需要数据结构来整理归纳。它表现了数据的逻辑结构和存储结构及其操作。在某种程度上来说,数据结构是算法的衍生产品,它与算法的关系非常密切,算法(第4版)将数据结构表述为算法的最终呈现形式,在我看来,这种说法非常准确,要学习算法必须要有数据结构的知识体系,很简单的算法实现可能都包括复杂的数据结构,换句话说,选择合适的数据结构可能创造出非常简单易懂但是时间效率非常高的算法,这会在后面算法设计的要求中讲到。

  • 数据结构的基本概念和术语

1.数据

数据就是描述客观事物的符号,在计算机中是可以操作的对象,在具体的语言中,可以将它们看做计算机可以操作的符号,计算机只认识1和0,因此声音、图像等数据是可以通过编码的手段变成字符数据让计算机进行处理的。另外提一嘴,数据库可以看做一个种群,在数据库这个大家庭中,每天都会有成员死去、诞生以及新陈代谢等,这就对应数据库的删除、新增、更新等操作。这样比喻是不是就比较形象。

2.数据元素

数据元素:可以将数据元素看做数据的子集,他是数据的基本单位,数据由若干个数据元素组成。

3.数据项

数据项:很好理解,数据元素是由若干个数据项组成的,这个对应语言类中的方法与属性的关系,一个人有什么属性呢,当然是要有一个鼻子、两只眼睛、两条腿等硬性指标是吧,不然就不是人是怪物了,另外人还得要有自己的姓名吧,唯一的身份证吧。不然两个人都没办法区分了。另外数据项是数据的最小单位,在数据结构研究中我们应该着眼于数据元素的研究,而不是数据项的研究,毕竟你爱上一个女孩子(男孩子),不只是因为她/他的名字或者身材对吧。

4.数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集。

  • 逻辑结构和物理结构

数据结构按观点可以划分为逻辑结构和物理结构

逻辑结构包括:集合结构(对应于中学学过的集合的概念,当然大学的概率论也会涉及)、线性结构(线性表、栈、队列、串)、树形结构(二叉树、B树、红黑树对吧)、图形结构(脑袋里是不是蹦出了最短路径、Prim算法、Dijkstra算法等概念)

物理结构包括:顺序存储结构、链式存储结构

顺序存储结构很好理解,就是将一堆数据元素按着一定的顺序放在连续的存储单元中,他们之间的关系是紧密相连的,说白了,就是每个数据元素有自己的座位,它不能像校霸一样独占两个人的座位,也不能去其他班上课,上课的时候只能在自己的位置乖乖坐着。

而现实中并不会有如此规律的事情发生,日方中方睨,物方生方死任何事物都是在不断变化的。因此,为了应对这种随时都有可能变化的结构,顺序存储就显得力不从心了。拿一个例子来比喻,你想去吃海底捞,到了店门口,服务员笑脸迎接:"先生/小姐,您们几位啊,我们这里座位满了,要不您排个号,等位置空出来了,我们再联系您。"。那这时候服务员给你一张排号单,你在单子上写上自己的电话号码,接下来他可就不管你咯,忙着招呼下一个顾客去了,那这个时候你是不是打算回商场再逛一逛,或者去负一楼买点小零食填填肚子呢?只要及时回来,那么就能吃上小火锅。那么这个时候,我们关注的就不是在我前面排队的是谁,而是有没有叫到我们的号。

现在我们回到数据结构的知识体系上来,我们把自己当做一个数据元素,把排号单看做一个指针,当服务员看到有座位空出来了的时候,是不是就联系我们排号单上写好的联系电话(指针),通过这个指针来寻找我们的地址,那么我们当时所在的位置就不重要了,只要有指针存放了我们的地址服务员就能联系上我们。这种结构不要求数据元素都按着指定的顺序排队,只要能反映数据元素之间的逻辑关系,就可以找到想要的那个数据元素。

  • 抽象数据类型

数据类型,这个概念在其他的编程学习书中都讲的很详细了,像int、char、byte、long在这里就不再赘述,另外各个数据类型的值域需要了解一下,在处理比较大的数据的时候应当选择适当的数据类型,其他的像java中转换的字符串宽度和负宽度的概念不记得可以再翻一翻资料。

抽象数据类型在我看来使用它的人可以只关心它的逻辑特征,不需要了解它的存储方式。定义它的人同样不必要关心它如何存储,它的存在只是为了描述清楚一个数据模型。

总结

第一部分主要描述了数据结构一些基本的概念。包括数据、数据对象、数据元素的关系。数据结构按分类包括逻辑结构和物理结构,逻辑结构又包括:集合结构、线性结构、树形结构、图形结构;物理结构包括:顺序存储结构、链式存储结构,最后还提了一下数据类型和抽象数据类型的一些观点和看法。

大话数据结构(一)数据结构相关概念相关推荐

  1. 【大话数据结构】——-数据结构

    数据结构,顾名思义:就是计算机存储.组织数据的方式. 定义: 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合. 使用数据结构的好处: 通常情况下,精心选择的数据结构可以带来更高的运行或者存 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 大话数据结构之数据结构

    2019独角兽企业重金招聘Python工程师标准>>> 程序设计=数据结构+算法 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合 ...

最新文章

  1. java都界面相对布局_浏览器的重排和重绘
  2. Vue精简版风格指南
  3. struct和class内存大小的计算
  4. 云VS本地,一言难尽的ERP
  5. 卡方 python_卡方优度检测 (Python 实现) --基于jupyter
  6. POJ 1742 Coins
  7. [HDOJ5542]The Battle of Chibi(DP,树状数组)
  8. 《深入理解Spark-核心思想与源码分析》(四)第四章存储体系
  9. latex中文模板_都8012年了还不用LaTex编辑论文就out了!!
  10. string转int的方法_Spark——scala 实用小方法
  11. 50 道网络面试题及答案
  12. Android的一个登陆注册页面
  13. 一元三次方程c语言程序,求解一元三次方程近似解的几种算法(C语言)
  14. 数据库的redo undo 思考总结
  15. 深入理解Symbol
  16. NLP学习笔记14-语言模型(下)
  17. 从DDR到DDR4,内存核心频率其实基本上就没太大的进步
  18. ECCV2020Workshop-PAN-270k参数量SISR网络 | Efficient Image Super-Resolution Using Pixel Attention
  19. 520告白日~情人节特献3D玫瑰花源码
  20. 2022.8.31OOALV

热门文章

  1. QT使用串口与RS485设备通讯
  2. stable diffusion AI绘画作品展
  3. c语言 字母方阵,运用C语言制作拉丁方阵的实现方法
  4. Tomcat 自定义启动startup.bat文件
  5. 旅游自助管理信息系统概要设计规格 .
  6. [Python 高德地图] API调用学习历程(四)
  7. 关于前端跨域及解决方案详解
  8. 前端 json数据转txt文本并下载(前端自定义封装数据并下载文件)
  9. Git统计代码行数;Java实现统计代码行数,忽略空行、注释行
  10. 电脑耳机没有声音,前面板耳机孔没声音