何为数据结构?

  • 待处理的数据以及数据之间的关系

  • 数据元素之间一种或多种特定关系的集合

数据结构的起源

  • 一开始计算机是计算数值用的,所以当人们使用计算机解决实际问题的时候,首先需要从具体问题中抽象出一个适当的数据模型,为了解这个设计模型,需要设计算法,最后才是实现解决该问题的程序,从而得到一个可用的程序。

  • 但是现实生活中,不仅仅是处理数值上的问题,更多的是用程序来做排队取票、复杂计算器的设计、超大整数的求和等等问题,所以更需要有堆、栈、树、表等数据结构的帮助。

因此数据结构研究的是非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题。

数据

  • 描述客观事物

  • 计算机中可以操作

  • 能被计算机识别

  • 数据是能够输入给计算机处理的符合集合

数据元素

组成数据的,有一定意义的基本单位,在计算机通常作为整体处理,通常也被称为记录。

水果中的苹果,梨,香蕉;猫和狗是宠物类的数据元素

数据项

一个数据元素可以由若干个数据项组成

数据项是数据不可再分的最小单位。

针对苹果这个数据元素,可以有大小,颜色这些数据项;

针对猫这个数据元素,可以有尾巴,足,嘴巴,鼻子,耳朵等数据项。

数据对象

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

性质相同指的是数据元素具有相同数据和类型的数据项

苹果都有大小和颜色等相同的数据项。

针对上述概念,对数据结构下一个定义

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

排队,可以理解为先到的人先取餐。

数据元素一种或多种特定的关系指的是什么?

这包含了逻辑上的关系和物理上的关系

逻辑结构

逻辑结构指的是数据对象中数据元素之间的相互关系

集合结构

类似于数学中的集合,数据元素之间没有别的关系,只是同属一个集合。

线性结构

数据元素是一对一的关系

树形结构

数据元素是一对多的关系

图形结构

数据元素是多对多的关系

物理结构

物理结构是指数据的逻辑结构在计算机中的存储形式,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。

顺序存储结构

将数据元素存放到地址连续的存储单元里面,其数据间的逻辑关系和物理关系是一致的。顺序存储结构类似于排队,两两之间是十分靠近的。

链式存储结构

将数据元素放到任意的存储单元里面,这组单元可以连续也可以不连续。

链式存储结构类似于银行叫号,人可以站在任何一个地方,只需要关注自己的上一个人就行了。

抽象数据类型

数据类型指的是一些值的集合以及针对该集合的一些操作的总称,这些值要求性质相同。

如1,2,3,45,3435,3443这些都是整数,可以称之为整型。

抽象数据类型又分为原子类型和结构类型,原子类型指的是不可再分解的基本类型。结构类型是由若干个类型组合而成,是可以再分解的。

抽象指的是抽取出事物具有的普遍性的本质,抽出问题的特征而忽略细节。

抽象数据类型是指一个数学模型及定义在这个模型上的一组操作。

比如一个点,在空间直角坐标系中存在x,y,z坐标,我们可以把点抽象出来,做成一个数据类型。

问题

抽象数据类型,抽象类的区别

抽象数据类型Abstract Data Type,ADT)是计算机科学中具有类似行为的特定类别的数据结构的数学模型;或者具有类似语义的一种或多种程序设计语言的数据类型。抽象数据类型是描述数据结构的一种理论工具,其目的是使人们能够独立于程序的实现细节来理解数据结构的特性。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示无关。

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。

抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

(一)数据结构的起源,常见的名词解释,数据元素之间的关系相关推荐

  1. 数据结构三要素——逻辑结构和物理结构与数据运算之间的关系

    数据结构的三要素是:逻辑结构,物理结构,数据的运算. 逻辑结构: 分为线性结构个非线性结构. 线性结构就是有一一对应的关系的,如A-B-C,这三个字母就符合线性结构. 非线性结构就是集合,树,图.集合 ...

  2. Java中常见的名词解释

    java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 [黑马程序员pink老师前端]HTML [黑马程序员pink老师前端]JavaScript基础大总结 ...

  3. 转专业计算机常见的名词解释,迎鲜肉第9弹|大学生活必知名词解释

    原标题:迎鲜肉第9弹|大学生活必知名词解释 小青小青,快开学了,但是我还有很多不知道的事情,感觉有一点不安. 不用太担心,放松心情最重要!开学之后,你会慢慢适应大学生活的.在不如我先跟你介绍几个你不得 ...

  4. python粒子风暴_气象雷达应用中常见的名词解释

    点击上方"编外气象人",发现更多精彩. 1.偏振 偏振是指横波的振动矢量(垂直于波的传播方向)偏于某些方向的现象.纵波不发生偏振.振动方向对于传播方向的不对称性叫做偏振(polar ...

  5. 常见seo名词解释二(网站SEO常见术语说明)-从SEO到优化实战大师

    3-8 网站收录/收录量.索引量 网站收录量:站点经过搜索引擎的抓取和层层筛选后,在搜索引擎上展示给用户的页面数量:一般通过"site:域名"的形式在百度搜索框中查询,比较不准,波 ...

  6. 一些常见的名词解释(持续更新中)

    股权质押: 就是用自己的股票换取别人的资金的行为.某公司拥有某股票,某银行拥有大量资金:某天某公司急需资金(股权质押手续简单,资金到账快),某银行有能力提供资金,这样一来双方能够达成协议.

  7. 数据结构之数据、数据元素、数据项、数据对象之间的关系

    首图 # 前言 博主介绍: -- 本人是小奇,一个喜欢读书.交友.技术分享的Java程序员,更喜欢整理分享一些Java面试题,如果大家有需要可以关注我的公众号『小奇Java面试』领取资料. 文章目录 ...

  8. 常见频率f与周期T之间的关系

    1KHz=1ms=1微秒=1/1000秒 1MHz=1us=1微秒=1/1000000秒 10MHz=1/10us=0.1us 20MHz=1/20us=0.05us 50MHz=1/50us=0.0 ...

  9. 名词解释 算法的有限性_数据结构复习之【数据结构和算法概念】

    一.概念 数据结构就像是一个催化剂,如果没有原料是无用的,单是有了算法就能帮算法更快的实现任务: 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,简单地说是数据之间的各种关系的集合. 程 ...

最新文章

  1. Yii2与Yii1的模块中Layout使用区别
  2. Xcode 的正确打开方式——Debugging
  3. 分支-13. 计算天数
  4. et z201 php扩展,ET z201 时间型(Time)
  5. 字节跳动将推出汽车云业务,计划2025年追赶腾讯
  6. 互联网公司面试必问的mysql题目
  7. ActionScript 3.0 编程
  8. “4K”也有真假说法?历数那些年被忽悠的参数
  9. 【c++】函数默认参数
  10. python中重要的基础概念
  11. codeforces 742D Arpa's weak amphitheater and Mehrdad's valuable Hoses ——(01背包变形)
  12. mysql 清空二进制日志
  13. 基于node.js的微博博客实现
  14. laravel sql_mode 严格模式
  15. FFMPEG之海康实时回调出来的PS流格式
  16. 计算机课小组主题作业,小组作业软件工程课程设计(选作).doc
  17. 使用kubeadm安装k8s
  18. mysql修改游戏,第十二讲 战神引擎游戏列表和公告修改
  19. 视频用txt文件播放物联网
  20. 《大话脑科学》之:熟练掌握十门外语之从入门到放弃之语言相关ERP

热门文章

  1. C语言实现strncpy
  2. C# 实现卡布列克数
  3. java 300行代码 冒险闯关小游戏(代码+讲解)
  4. 循环神经网络RNN、LSTM、GRU实现股票预测
  5. wpf textbox 扫描枪 扫入条码 datagrid录入信息
  6. iis6 fastcgiiis6 mysql php 2013_windows2003SP2下IIS6.0+FastCGI+PHP5.3+MySQL5.1+phpMyAdmin最详细图文配置教程...
  7. Window之删除桌面快捷方式图标箭头
  8. 最新:2022年中国科技核心期刊目录公布(附完整版目录)
  9. ES系列7-ElasticSearch读写流程
  10. 服务器运行aspx,aspx文件怎么打开?aspx是什么文件?