从字面上来看,广义数据结构就是指数据问的相互关系。具体到计算机环境时,广义数据结构,就是由某种逻辑关系组织起来的一批数据,按一定的存储方法被存储于计算机中,并在这些数据上定义了一个运算的集合。

中文名

广义数据结构

外文名

GDS;generalized data structure

实    质

指数据问的相互关系常见结构

数组、柞、队列、链表、树、图等

三个侧面

数据的逻辑结构、存储结构和运算

应用领域

计算机科学、教育学、应用经济学

广义数据结构概述

编辑

语音

从字面上来看,广义数据结构就是指数据问的相互关系。具体到计算机环境,谈到任何一种结构时,都自然地联系着作用在这种类型的数据上的运算(即函数),为了在计算机上执行这些运算,我们有必要把这些数据以某种方式存储在计算机中。因此,我们可以认为,所谓广义数据结构,就是由某种逻辑关系组织起来的一批数据,按一定的存储方法被存储于计算机中,并在这些数据上定义了一个运算的集合。也就是说,数据结构具有三个方面:数据的逻辑结构、数据的存储结构和数据的运算。[1]

广义数据结构逻辑结构

常见逻辑关系有:线性结构、树形结构、图结构和文件结构。其中,线性结构是最简单的数据结构,例如,程序设计语言中往往都会介绍的线性表(包括数组和链表)、栈、队列、向量、字符串等。其中,字符串就是每个结点都是单个字符的线性表。实际上多维数组和广义表也是线性结构的推广。另外,文件其本质也是线性结构。不过由于存储在外存中.对文件数据的访问速度非常慢。因此,仔细研究文件结构和基于文件的外排序也是很有必要的。

二叉树和树是非常重要的数据结构,其应用十分灵活而广泛。二叉树可以看作是树的特例。例如,语言编译中要用到语法树,操作系统有目录树。数据库系统需要用索引树等进行数据管理,而在人工智能领域,需要用到搜索树等。许多真实世界的问题都可以用图来抽象地定义。例如,一张交通图可以用数据结构的图来形象化地表示:用结点表示城市,用边表示连接城市的高速公路;Web网页的关系也可以表示为图:Web网页作为结点,网页之间的链接作为边。图是一种最通用的逻辑结构,实际上,线性表∈叉树∈树∈图。[1]

广义数据结构存储结构

常见的存储方法有:顺序方法、链接方法、索引方法、散列方法。其中,索引存储又分为线性和树形两种。文件结构的索引则往往用树形结构。

广义数据结构运算

对于一种数据结构,往往需要定义一些运算。例如,建立数据结构,清除数据结构、插入一个新数据元素.删除某个数据元素、修改某个数据元素、排序、检索等。作为最常用的算法.排序和检索历来是数据结构讨论中的重点问题。排序算法最能够体现算法的魅力,它对算法速度要求非常高,其中内排序主要考虑的是怎样减少关键码之间的比较次数和记录交换次数,以提高排序速度。可以证明所有基于比较的排序算法的时间代价是Θ(nIogn),这也是排序问题的时间代价。而外排序则考虑外存的特性,尽量减少访外操作,以提高排序速度。检索则考虑怎样提高检索速度,这往往是与存储方法有关的。例如,我们可以利用索引存储来加快检索。散列表、B树和B+树等高效的数据结构都具有极好的检索性能。[1]

广义数据结构应用领域

编辑

语音

数据结构是计算机学科的重要分支研究领域。数据结构和算法在计算机学科中的地位十分重要,其他计算机科学领域及有关的应用软件都要使用到各种数据结构。数据结构是算法分析与设计、操作系统、软件工程、数据库概论、编译技术、计算机图形学、人机交互等专业基础课和专业课程的先行课程。语言编译要使用栈、散列表及语法树;操作系统中用队列、存储管理表及目录树等;数据库系统运用线性表、多链表及索引树等进行数据管理:而在人工智能领域,依求解问题性质的差异将涉及到各种不同的数据结构,如广义表、集合、搜索树及各种有向图等等。[1]

广义数据结构抽象数据类型

编辑

语音

事实上,数据结构的三个侧面,以数据的逻辑结构和数据的运算定义更为重要。因为很多时候人们并不关心数据的存储结构和运算的具体实现。1983年Aho等人把数据结构的存储与实现细节剥离,定义了抽象数据类型(简称“ADT“)的概念。抽象数据类型是定义了一组运算的数学模型。例如栈结构,栈中元素的数学特性(即逻辑结构)表现为线性表,它们是有序的;栈的主要运算是进栈(push)、出栈(pop)、判栈空(isEmpty)等。这里我们并不涉及栈的存储方式以及栈中元素的类型等。这种抽象的数据类型可以在较高级的算法中直接引用,而不用考虑它的实现细节。这就使得设计者可以在不同的设计阶段采用不同的抽象数据类型作为设计的基础.在适当的抽象层次上考虑程序的结构和算法,从而很好地支持了逻辑设计和物理实现的分离,支持封装和信息隐蔽。[1]

广义数据结构常用数据结构

编辑

语音

广义数据结构数组

在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

广义数据结构栈

是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

广义数据结构队列

一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。

广义数据结构链表

是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

广义数据结构树

是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:

(1)有且仅有一个结点 K0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。  (2)除K0外,K中的每个结点,对于关系N来说有且仅有一个前驱。

(3)K中各结点,对关系N来说可以有m个后继(m>=0)。

广义数据结构图

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

广义数据结构堆

在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

广义数据结构散列表

若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。[2]

词条图册

更多图册

参考资料

1.

张铭, 许卓群, 杨冬青,等. 数据结构课程的知识体系和教学实践[J]. 计算机教育, 2004(2):89-91.

2.

彭军、向毅.数据结构预算法:人民邮电出版社,2013年

计算机中的数据是一个广义的概念,广义数据结构相关推荐

  1. 浮点数计算机的表示案例,计算机中的数据及其应用案例.docx

    计算机中的数据及其运算HLJ_DJS☆笔记整理计算机中的数据包括数值性数据和非数值性数据两种.数据在计算机中通常是以二进制的形式表示的.对数值性数据进行编码即数值码,可以在计算机中对其进行各种数的运算 ...

  2. 计算机中存储数据最小的单位是什么,计算机中存储数据的最小单位和存储容量的基本单位各是什么?...

    pb呢计算机中存储数据的最小单位:位bit(比特)(BinaryDigits),存放一位二进制数,即0或1,最小的存储单位.存储容量的基本单位是:bit.B.KB.MB.GB.TB.PB.EB.ZB. ...

  3. 计算机中的数制与编码教程,第一章计算机中的数据和编码教程.doc

    第一章计算机中的数据和编码教程 第一章 计算机中的数据和编码 1.1计算机中的数制 1.2计算机中数的表示 1.3计算机中的编码 1.1 计算机中的数制之进位计数制 进位制: 按照进位的方法进行计数的 ...

  4. 微型表格计算机,excel表格存储数据的最小单位-计算机中存储数据的最小单位是什么?...

    计算机中存储数据的最小单位和存储容量的基本单位... 位(bit)是制数的本单位,存储器存储信息的最小单位,8位二进制数称为字节(byte).当一个数作为一个整体存入或取出时,这个数叫做存储字.存储字 ...

  5. 7.计算机中的数据的表示及编码

    计算机中数据的表示与编码 1.数的进位计数制 2.数值型数据在计算机中的表示 3.二进制的编码 1.数的进位计数制 基数:每个数位上所能使用的数码的个数 位权:处在某一位上的 1 所表示的数值的大小, ...

  6. 取出json中的数据php,怎么从Json中取出数据放到一个新组中

    如何从Json中取出数据放到一个新组中 JSON数据如下: { "CommunityModel": [ { " UUID ": "xxxxxx-xxx ...

  7. 计算机中数的存储和处理都使用二进制对吗,计算机中的数据可分为两种类型:数字和字符,它们最终都要转换为二进制代码进行存储和处理。对于人们习惯的十进制数字,通常用____进行转换。...

    计算机中的数据可分为两种类型:数字和字符,它们最终都要转换为二进制代码进行存储和处理.对于人们习惯的十进制数字,通常用____进行转换. 更多相关问题 [单选] 电力线路巡视检查周期,定期巡视每月至少 ...

  8. 计算机中的数据单位(位、字节、字)

    计算机中的数据单位(位.字节.字) 二进制位/比特/Bit/b 字节/Byte/B) 字/Word) 二进制位/比特/Bit/b 计算机内部通过数字逻辑电路进行硬件实现. 数字逻辑电路包含很多底层细节 ...

  9. 没有绝对安全的系统!激光瞄准二极管,25米外从被物理隔绝的计算机中窃取数据...

    来源:大数据文摘 本文约1000字,建议阅读5分钟 除了传统的信息和通信技术的安全外,关键的IT系统也需要光学保护. 即使是物理隔离的计算机系统,仍然可能受到外界攻击? 这太可怕了. 在一个叫Lase ...

最新文章

  1. shell脚本报错:[: =: unary operator expected
  2. (6) 查看汉字转换成字节数组后的字节值
  3. Google Colab使用详细教程
  4. Linux环境下提升普通用户权限(sudo)
  5. 学起来 —— CSS 入门基础
  6. Socket套接字的速率控制(linux)
  7. apache karaf_未来是Apache Karaf上的微服务架构
  8. android studio 无法输入中文,Android Studio 升级到3.0后输入法中文状态下无法选词的终极解决方案...
  9. 圆锥曲线万能弦长公式_2020高考数学50条秒杀型公式与方法
  10. Spring Data MongoDB示例
  11. php循环 跳转语句,golang循环跳转语句
  12. 机器学习基础算法11-Logistic回归-ROC和AUC分类模型评估-实例
  13. Alos 12.5米DEM免费下载教程、高精度DEM数据、土地利用数据、植被类型分布数据、建筑轮廓分布数据
  14. 主页被修改成httpwww.yy4000.cn等类似首页,无法更改,怎么办?
  15. 红黑树(四)之 C++的实现 http://www.cnblogs.com/skywang12345/p/3624291.html?utm_source=tuicoolutm_medium=refe
  16. 小米 秋招 笔试 编程题 句子反转
  17. BFS——骑士的拯救行动
  18. linux调整笔记本色彩,linux 调节笔记本屏幕亮度
  19. 服务器ssl证书升级
  20. ArcGIS Server出图之Dynamic Layers

热门文章

  1. solr mysql 全文搜索_全文检索Solr集成HanLP中文分词
  2. 【PHP伪协议】源码读取、文件读写、任意php命令执行
  3. linux maskrom模式,微雪电子RK3308主板CC启动模式介绍
  4. 一名85后老程序员的真心话
  5. Matlab中创建和使用表
  6. 开发实习日记10.11
  7. 【雷达通信】基于matlab大规模MIMO三维信道【含Matlab源码 2105期】
  8. MySQL 计算环比(同比类似)
  9. MATLAB-一维插值运算
  10. composer私有仓库搭建