想看博主whywait的更多同系列文章?点击传送门


简言 - 数据结构基本概念

前面介绍了背景,现在就来介绍一些基本概念。

基本概念不多是不可能的,从学习的全面性考虑,就不遗漏每一条基本概念了。

文章目录

  • 简言 - 数据结构基本概念
    • 基本
    • 结构的形式定义
    • 结构的几种分类方式
      • 方式一:元素之间关系的不同特性
      • 方式二:逻辑结构 & 物理结构
    • 虚拟存储结构
    • 数据类型
    • 抽象数据类型

基本

数据:对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。有时,一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。

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

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。(这是对数据结构的一种简单解释)


结构的形式定义

数据结构的形式定义。数据结构是一个二元组 Data Structure = (D, S), 其中:D是数据元素的有限集,S是D上关系的有限集。


结构的几种分类方式

方式一:元素之间关系的不同特性

在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构。根据元素之间关系的不同特性,通常有下列四种基本结构

  1. 集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系;
  2. 线性结构:结构中的数据元素之间存在着一个对一个的关系;
  3. 树形结构:结构中的数据元素之间存在着一个对多个的关系;
  4. 图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系。

注:由于集合是数据元素之间关系极为松散的一种结构,因此也可用其他结构来表示它。

方式二:逻辑结构 & 物理结构

逻辑结构:结构定义中的关系描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。

物理结构(存储结构):数据结构在计算机中的表示(映像)称为数据的物理结构。

  • 关于物理结构:物理结构包括数据元素的表示和关系的表示。在计算机中表示信息的最小单位是二进制数的一位,叫做(bit)。在计算机中,我们可以用一个由若干位组合起来形成一个位串表示一个数据元素,通常称这个位串为元素(element)或结点(node)。当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域(data filed).

顺序映像非顺序映像:对应的两种不同的存储结构为顺序存储结构链式存储结构。顺序映像的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像的特点是借助指示元素存储地址的指针表示数据元素之间的逻辑关系。

虚拟存储结构

虚拟存储结构:假如我们把c语言看成是一个执行c指令和c数据类型的虚拟处理器,那么我们讨论的存储结构是数据结构在c虚拟处理器中的表示,不妨称它为虚拟存储结构。


数据类型

数据类型:数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

  • 数据类型是和数据结构密切相关的概念。在用高级的程序语言编写的程序中,每个变量、常量或表达式都有一个它所属的确定的数据类型。类型明显或隐含的规定了在程序执行期间变量或表达式所有可能取值的范围,以及在这些值上允许进行的操作。
  • 按“值”的不同特性,高级程序语言中的数据类型可分为两类:一类是非结构的原子类型。原子类型的值是不可分解的。另一类是结构类型。结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的
  • 在某种意义上,数据结构可以看成是“一组具有相同结构的值”,则结构类型可以看成有一种数据结构和定义在其上的一组操作组成。

抽象数据类型

抽象数据类型(abstract data type,简称ADT):是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要他的数学特性不变,都不影响其外部的使用

  • 抽象数据类型和数据类型实质上是一个概念。“抽象”的意义在于数据类型的数学抽象特性
  • 抽象数据类型的范畴更广。
  • 一个含抽象数据类型的软件模块通常应包含定义、表示和实现3个部分。

抽象数据类型按照其值的不同特性可细分为下面三种类型

  • 原子类型:原子类型的变量的值是不可分解的;
  • 固定聚合类型:该类型的变量其值有确定数目的成分按某种结构组成;
  • 可变聚合类型:和固定聚合类型相比较,构成可变聚合类型的“值”的成分的数目不确定

标注:后两种类型可统称为结构类型

和数据结构的形式定义相对应,抽象数据类型可用以下三元组表示:(D,S,P),其中,D 是数据对象,S 是 D 上的关系集,P 是对 D 的基本操作集。

多型数据类型:是指其值的成分不确定的数据类型。从抽象数据类型的角度看,具有相同的数学抽象特性,故称之为多型数据类型;

抽象数据类型可通过固有数据类型来表示和实现(用处理器中已经存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作)。


想看博主whywait的更多同系列文章?点击传送门


内容参考:《数据结构 (C语言版)》 严蔚敏、吴伟民

这些数据结构基本概念你晓得几个嘞?相关推荐

  1. 【数据结构总结】第一章:数据结构基本概念

    [数据结构总结]第一章:数据结构基本概念 本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读 ...

  2. Python数据结构与算法(三)--数据结构的概念

    上一章我们看Python内置的模块可以测试代码的时间,有的代码执行时间短有的执行时间长,就是说效率不一样. 如果上面不明显的话,大家看下面两个方法.append() 和 insert(0) impor ...

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

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

  4. 数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)

    //数据结构基本概念 #include<iostream> using namespace std;/* 数据 – 程序的操作对象,用于描述客观事物 数据的特点: 可以输入到计算机 可以被 ...

  5. 【向题看齐】408之数据结构DS概念记忆总结

    408之数据结构DS概念记忆总结 1.线性表 2.栈和队列 3.串 4.树 4.1.树的性质 4.2.二叉树的性质 4.3.满二叉树的性质 4.4.线索二叉树的性质 4.5.二叉排序树的性质 4.6. ...

  6. C语言数据结构-第一讲-数据结构基础概念-电大

    第一讲数据结构基础概念内容简介 数据是表征客观事物的可记录可识别的符号集合.数据是信息处理的核心基础. 本讲主要介绍了与数据结构有关的基本概念术语: l       数据 l       数据元素 l ...

  7. 考研数据结构の基础概念

    考研数据结构の基础概念 第一章 绪论 第二章 线性表 第三章 栈与队列 第四章 串 第五章 矩阵与广义表 第六章 树 第七章 图 第八章 排序 第九章 查找 第一章 绪论 1.数据:是对客观事物的符号 ...

  8. 数据结构---基础概念

    一.内容要点 (一)什么是数据结构 1.用计算机解决问题需要几个步骤: 从实际问题抽象出数学模型: 设计解决此数学问题的算法: 编译.调试程序,直至得到最终答案. 2.问题的类型 例1:图书管理系统. ...

  9. 数据结构系统学习(1)数据类型和数据结构的概念

    目录 1.有关数据结构的基本概念和术语 (1)数据 (2)数据元素 (3)数据对象 (4)数据类型 (5)抽象数据结构 2.数据结构   在现代计算机系统中,计算机更多地用于控制,管理及数据处理等非数 ...

  10. PHP数据结构基本概念

    原文:https://www.cnblogs.com/crystaltu/p/6408484.html 学习任何一种技术都应该先清楚它的基本概念,这是学习任何知识的起点!本文是讲述数据结构的基本概念, ...

最新文章

  1. 网络模型:(0)背景
  2. python+selenium+chrome实现自动登录百度
  3. 2015蓝桥杯省赛---java---B---10(生命之树)
  4. socketmq 设置队列大小_[译] TCP的SYN队列和Accept队列
  5. ISTQB高级国际认证试题及答案(一)
  6. C语言去掉字符串的换行符
  7. LeetCode——7. Reverse Integer
  8. axure,购物车数量递增或递减
  9. windows和linux的共享
  10. OpenGL编程指南(红宝书)第九版使用指南
  11. Bilibili宋红康老师MySQL高级篇笔记-架构篇(有完整的md格式笔记,迟点整理好会挂链接)
  12. 学习Vue3 第二十五章(TSX)
  13. python用牛顿迭代法求平方根_利用牛顿迭代法求平方根 - 业精于勤,荒于嬉;行成于思,毁于随! - OSCHINA - 中文开源技术交流社区...
  14. 情人节程序员用HTML网页表白【爱心表白】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  15. 电脑打开播放器提示服务器运行失败,电脑中打开WMP播放器提示服务器运行失败如何解决...
  16. 智能楼宇3D虚拟仿真实训平台
  17. php敏感字符串过滤_PHP的一个过滤敏感词或脏话的方法
  18. XXTEA加密流程分析
  19. taglib指令作用以及属性
  20. pubg国际版服务器没有响应,PUBG显示服务器没有正常执行 | 手游网游页游攻略大全...

热门文章

  1. 基于LDC1614 1612的电感式位移传感器
  2. 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析(含phil补充)
  3. android模拟器字体,真正免root的ifont字体软件详细使用教程
  4. 网络威胁情报git【全面】
  5. 【5 于博士Cadence SPB15.7 快速入门视频】allegro的测量工具的使用
  6. 鹏城实验室“鲲鹏”人才引育计划(2022-2025年)
  7. html语言type,HTML中type是什么意思?
  8. 软件测试是干什么的 什么样的人才能够当软件测试员?
  9. response.getStatusCode()==200什么意思
  10. ajax向后台传递参数为对象实例