您的位置:首页 > 理论基础 > 数据结构算法

【自考】数据结构总结

2017-12-01 22:31 387 查看
  这门课自考也考完了,虽说过了,但是和自己理想的分数还差一些。米老师说最好的复习是在考试后,刚好趁热来总结总结。

-什么是数据结构

  数据结构:即人们抽象出来的描述现实世界实体的数学模型(非数值计算)及其上的操作(运算),在计算机上的表示和实现。

数据结构就是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。

   数据类型

  数据类型定义该类型涵盖的数据的性质、取值范围以及对数据所能进行的各种操作。程序中的每一个数据都属于一种数据类型,决定了数据的类型也就决定了数据的性质以及对数据进行的各种运算和操作,同时数据也受到类型的保护,确保对数据不能进行非法操作。

高级程序设计语言通常预定义一些基本数据类型和构造数据类型。基本数据类型的值是单个的、不可分解的,它可以直接参与该类型所允许的运算。构造数据类型是使用已有的基本数据类型和已定义的构造数据类型按照一定的语法规则组织起来的较复杂的数据类型。构造数据类型的值由若干元素组合而成,这些元素按某种结构组织在一起。

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

  是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型和数据类型本质上是一个概念,它们都表现数据的抽象特征。数据抽象是指“定义和实现相分离”,即将一个类型上的数据及操作的逻辑含义与具体的实现分离。程序设计语言提供的数据类型是抽象的,仅描述数据的特征和对数据操作的语法规则,并没有说明这些数据类型是如何实现的。程序设计语言实现了它预定义数据类型的各种操作,编程人员按照语言提供的规则使用数据类型,只考虑对数据执行什么操作(做什么),而不必考虑怎样实现这些操作(怎样做)。对于使用数据类型的用户来说,数据类型实现了信息的隐蔽,即将一切用户不必了解的细节都封装在类型中。例如Java语言的类型-整数类型即是一个抽象数据类型,编程人员在使用整型时,并不需要知道其是如何实现的。

另一方面,抽象数据类型的范畴更广,它不再局限于程序语言已定义并实现的数据类型(也可称这类数据类型为固有数据类型),还包括编程人员在设计软件系统时自己定义的数据类型。

如前所述,抽象数据类型的定义是由一个值域和定义在该值域上的一组操作组成,算法设计时,编程人员通常需要为一些抽象出来的逻辑结构来自定义一个抽象数据类型,比如:为线性表,栈,队列,串,广义表,二叉树,树,图等自定义抽象类型。一种抽象数据类型描述一种数据结构的逻辑特性和操作,与该数据结构在计算机内存储及实现无关。

抽象数据类型的三要素:数据对象,数据关系,基本操作。

在实际应用中,编程人员在使用自定义的抽象数据类型之前,必须实现这些抽象数据类型(在实现之前,还应该为属于数据类型的数据元素定义结点),才能使用它们。而实现抽象数据类型依赖于数据存储结构。例如,线性表可分别采用顺序存储结构或链式存储结构来实现。

   未完~待续~

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: