《大话数据结构》| 第1章 数据结构绪论

目录

1.3 数据结构起源

1.4 基本概念和术语

1.4.1 数据

1.4.2 数据元素

1.4.3 数据项

1.4.4 数据对象

1.4.5 数据结构

1.5 逻辑结构与物理结构

1.5.1 逻辑结构

1.5.2 物理结构

1.6 抽象数据类型

1.6.1 数据类型

1.6.2 抽象数据类型

1.7 总结


1.3 数据结构起源

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

                                              程序设计 = 数据结构 +算法

1.4 基本概念和术语

1.4.1 数据

       是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据不仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。

1.4.2 数据元素

       是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。如人类中,数据元素就是人;畜类,数据元素是牛、马等动物。

1.4.3 数据项

      一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。

     对人来说,数据项就是眼、耳、嘴、手和脚等,也可以是姓名、年龄,性别。出生地址。联系电话等数据项。具体的数据项,要视你做的系统来决定。

1.4.4 数据对象

     是性质相同的数据元素的集合,是数据的子集。性质相同指数据元素具有相同数量和类型的数据项,如人都有姓名、生日。性别等相同的数据项。

1.4.5 数据结构

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

1.5 逻辑结构与物理结构

1.5.1 逻辑结构

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

1、集合结构

集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。类似于数学中的集合。

                           

2、线性结构

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

                                  

3、树形结构

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

                                  

4、图形结构

图形结构:图形结构的数据元素是多对多的关系。

                                    

1.5.2 物理结构

物理结构:是指数据的逻辑结构在计算机中的存储形式。也叫存储结构。

数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器汇总。存储器主要是针对内存而言,硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。

数据元素的存储结构形式有2种:顺序存储和链式存储。

1.顺序存储结构

顺序存储结构:是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

                    

2.链式存储结构

链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

                                     

逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。

1.6 抽象数据类型

1.6.1 数据类型

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就用来说明变量或表达式的取值范围和所能进行的操作。

C语言中,按照取值的不同,数据类型可以分为两类:

  • 原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等。
  • 结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。

抽象是指抽取出事物具有的普遍性的本质。它是抽出问题的特征而非忽略非本质的细节,是对具体事务的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必需的信息。

1.6.2 抽象数据类型

对已有的数据类型进行抽象,就有了抽象数据类型。

抽象数据类型(Abstract Data Type,ADT):是指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑操作,而与其在计算机内部如何表示和实现无关。

如各个计算机,不管大型机、小型机、PC、平板电脑、PDA,甚至智能手机都拥有“整数”类型,也需要整数间的运算,那么整型其实就是一个抽象数据类型,尽管它在上面提到的这些在不同计算机中的实现方法上可能不一样,但由于其定义的数学特性相同,在计算机编程者看来,它们都是相同的。因此,“抽象”的意义在于数据类型的数学抽象特性。

抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者在设计软件程序时自己定义的数据类型。

根据抽象数据类型的定义,它还包括定义在该模型上的一组操作。

一个抽象数据类型定义了:一个数据对象、数据对象中各数据元素之间的关系及对数据元素的操作。如“超级玛丽”中的马里奥,定义的操作:走(前进、后退、上、下)、跳、打子弹等。

事实上,抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。

描述抽象数据类型的标准格式:

1.7 总结

本章介绍了数据结构的一些相关概念.

由这些概念,给出了数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。同样是结构,从不同的角度来讨论,会有不同的分类:

                        

 

                                    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值