如何理解数据结构中的抽象数据类型?

##抽象数据类型的标准格式

ADT 抽象数据类型名
{
Data:
数据元素之间逻辑关系的定义;
Operation:
操作1;
操作2;
...
}

##什么是抽象数据类型?

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

例如,int类型的数据表示的是整数,可以进行加减乘除模等一些运算,int类型数据的这些数学特性保持不变,那么在编程者来看,他们都是相同的。

因此,数据抽象的意义在于数据类型的数学抽象特性。

抽象数据类型和数据类型在实质上是一个概念,只不过是对数据类型的进一步抽象,不仅限于各种不同的计算机处理器中已经实现的数据类型,还包括为解决更为复杂的问题而由用户自定义的复杂数据类型。

例如,在统计学生信息时,经常使用姓名、学号、成绩等信息,我们可以定义这样的一个抽象数据类型student,它封装了姓名、学号、成绩三个不同类型的变量,这样操作student的变量就能够很方便的知道这些信息了。C语言中的结构体以及C++、java语言中的类等都是这种形式。


##通俗的讲
抽象数据类型,泛指除基本数据类型以外的数据类型。

什么叫类型?就是一类数据。基本数据类型被人做是最基本地,不可再划分的数据,一般就是整形、浮点型、以及字符型。抽象数据类型是由若干基本数据类型归并之后形成的一种新的数据类型,这种类型由用户定义,功能操作比基本数据类型更多,一般包括结构体和类。其实说白了,抽象数据类型就是把一些有一定关联的基本数据类型打包,然后当做新的数据类型使用。
至于有什么用,这个用处可大了。比如你要实现对一个人地信息管理,如果你只用基本数据类型那么你需要定义很多数据类型的变量比如名字、性别、出生地、生日之类的,并且操作起来不方便。如果用抽象数据来实现就简单了,直接把这些信息放包装在一个新的数据类型中,然后就可以直接定义这样的一个变量就可以了。
C++中的类更好的实现了封装功能,这就是类。类使得抽象数据类型的可操作性更强了,真正实现了面向对象。至于用法,只要学过C++肯定知道类地用法吧?那就是如何用。也许你现在觉得这样的操作更麻烦了,还不如C语言简洁的好。但是当你有一天真正的进入了公司,你才发现面向对象编程是多么棒的一种编程方式,他可以让你更高效的去开发。
同时告诉你,你对负责操作不是很了解只能证明你的编程数量不够,在编程领域中永远要记住一句话:钢是打出来的。编程仅仅靠看书或是听老师讲解是行不通的,必须亲自躬行才能真正掌握它

猜你喜欢

转载自blog.csdn.net/Gnewocean/article/details/82388462