数据结构的定义

按某种逻辑关系组织起来的一批数据,按一定的映象方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合。

数据(Data)

数据是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。

数据是对客观事物采用计算机能够识别、存储和处理的形式所进行的描述。简而言之,数据就是计算机化的信息。

数据的概念是广义的。

数据元素(DataElement)

数据元素是组成数据的基本单位, 是数据集合的个体。

数据项(Data Item)是有独立含义的最小单位。

数据对象(DataObject)

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

数据结构(DataStructure)

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

数据结构:关心数据元素之间的相互关系与组织方式、运算及规则,不涉及数据元素的具体内容。

数据类型(DataType)

数据类型是一组性质相同的值集合以及定义在这个值集合上的一组操作的总称。

数据类型中定义了两个集合:类型的取值范围、可允许使用的一组运算集。

由于客观事物存在着各种不同的联系形式,因此在计算机内反映数据的关系时,可以用结构来描述这些关系。数据结构分为

逻辑结构:指数据元素之间的关系。

物理结构:数据结构在计算机中的表示,又称为存储结构。

c语言的数据类型如下

一般来说,高级语言中的数据类型可分为两类:

①非结构的原子类型

原子类型的值是不可分解的。

C语言中的标准类型(整型、实型、字符型、枚举型)及指针和空类型。

②结构类型

结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是原子型或结构型。

C语言中的数组、结构体、共用体。

抽象数据类型(AbstractData Type,ADT)

抽象数据类型(AbstractData Type)是指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。

①抽象数据类型的定义取决于客观存在的一组逻辑特性,而与其在计算机内如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。

②抽象数据类型和数据类型实质上是一个概念。

“抽象”的意义在于数学特性的抽象。

一个ADT定义了一个数据对象,数据对象中各元素间的结构关系,以及一组处理数据的操作。

ADT 通常由用户定义且用以表示应用问题的数据模型,通常由基本的数据类型组成,并包括一组相关服务操作。

抽象数据类型是近年来计算机科学中提出的最重要的概念之一,它集中体现了程序设计中一些最基本的原则:

数据抽象(Abstraction)与信息隐藏

一个抽象数据类型确定了一个模型,但将模型的实现细节隐藏起来;

它定义了一组运算,但将运算的实现过程隐藏起来。

模块化(Modularity)

封装(Encapsulation)与复用(Reuse)

四类基本数据结构

集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。

线性结构:结构中的数据元素之间存在着一对一的线性关系。

树形结构:结构中的数据元素之间存在着一对多的层次关系。

图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。

存储结构(又称物理结构)

逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和关系的表示。

形式化描述

D要存入机器中,建立一从D的数据元素到存储空间M单元的映象S,D→M,即对于每一个d,d∈D, 都有唯一的z∈M,使S(D)=Z, 同时这个映象必须明显或隐含地体现关系R。

同一种逻辑结构可以使用不同的物理结构来实现。

在计算机中表示信息的最小单位是一个二进制位(bit)。一个数据元素的“bit位串”通常称为“结点”。

当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据字段。

数据元素之间的关系在计算机中有两种基本的存储结构:

顺序存储结构

链式存储结构

在高级语言的指针类型中,不是针对计算机的实际地址进行存储,这种存储称为虚拟存储结构。

逻辑结构与存储结构的关系

存储结构是逻辑关系的映象与元素本身的映象。

逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系。

笨鸟学数据结构(绪论)相关推荐

  1. 计算机二级(五)小笨鸟学飞版

    分时操作系统是使一台计算机采用时间片轮转的方式同时为几个.几十个甚至几百个用户服务的一种操作系统.把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各 ...

  2. 笨鸟学Android开发(1):HelloWorld

    全程视频(IE等浏览器中若看不到以下GIF动画,请下载观看) 源代码 转载于:https://www.cnblogs.com/beta2013/archive/2012/06/28/3377298.h ...

  3. Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 最近一直感觉自己好忙,每天都浑浑噩噩的过着,转眼间,好像有好长时间没有更新笨鸟到菜鸟了.现 ...

  4. java程序员从笨鸟到菜鸟之_Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验...

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog..net/csh624366188 最近一直感觉自己好忙,每天都浑浑噩噩的过着,转眼间,好像有好长时间没有更新笨鸟到菜鸟了.现在想想, ...

  5. 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21

    大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...

  6. Java程序员从笨鸟到菜鸟之——总结和声明

    前段时间经过大约二十天的时间把javaSE的内容总结了一下,最近由于个人原因和一些乱七八糟的事情,一直没在更新,首先感谢那些一如既往支持我的朋友.最近不知道为什么,一直很懒,做东西也一直是效率很低,生 ...

  7. Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)...

     本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 写在前面:由于前天项目老师建设局的项目快到验收阶段,所以,前天晚上通宵,昨天睡了大半天, ...

  8. Java程序员从笨鸟到菜鸟之(五)java开发常用类(包装,数字处理集合等)(下)

    写在前面:由于前天项目老师建设局的项目快到验收阶段,所以,前天晚上通宵,昨天睡了大半天,下午我们宿舍聚会,所以时间有点耽误,希望大家见谅 上接: Java程序员从笨鸟到菜鸟之(四)java开发常用类( ...

  9. Java程序员从笨鸟到菜鸟全部博客目录

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.NET/csh624366188 欢迎关注微信账号:java那些事:csh624366188.每天一篇java相关的文章 大 ...

最新文章

  1. perl 计算多维数组的行数,以及每行的元素数
  2. 在EXCEL表格中怎么去掉全部的内容的最后一个字
  3. frame,iframe,frameset用法和区别
  4. 【测试】ABAP直连外部数据库
  5. java juc包多线程编程案例:Executor入门示例
  6. HashSet集合存储数据的结构(哈希表)
  7. 模板编译template的背后,究竟发生了什么事?带你了解template的纸短情长
  8. 提示丢失libgcc_s_dw2-1.dll问题
  9. WINCE恢复默认HIVE注册表的方法
  10. 校内模拟赛 Zbq's Music Challenge
  11. springboot整个缓存_springboot整合ehcache缓存
  12. 水印相机定位不准确怎么办_选好镜头 选好3D四轮定位仪
  13. Otsu算法——最大类间方差法(大津算法)
  14. 2021起重机作业 (Q)模拟考试题库及软件
  15. Vin码采集,Vin码录入
  16. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI
  17. linux设置时间大全
  18. 李开复给中国学生第三封信:成功、自信、快乐
  19. 测试创新——拓宽自己的边界
  20. Python 石墨烯边缘磁性Hatree_Fock计算

热门文章

  1. 今日头条的排名算法_今日头条搜索seo排名怎么做? 今日头条搜索排名规则...
  2. 贷款用户逾期问题Task4
  3. 【项目实战合集】计算机视觉毕业设计项目怎么选,超30个经典案例供你选择...
  4. 计算机控制整体液压提升滑移技术采用了,钢结构滑移施工技术
  5. 会议录音转换文字的软件,让你再也不用担心会议记录
  6. MATLAB实现周期信号的傅里叶级数的展开
  7. C++笔记 51:编写new和delete时需固守常规
  8. 牛人用计算机word 画画,还要啥设计师?牛人用Word做标志设计
  9. matlab和canoe,总线网络开发和测试工具CANoe
  10. 18650锂电池参数、充放电时间计算详解