抽象数据类型ADT(Abstract data type),以及为什么要学习数据结构?

抽象数据类型

从四种基本的原子数据类型:整型、浮点型、字符型、枚举型,到三种构造类型:数组、结构体、指针,再到抽象数据类型:队列、栈、链表等等,逐渐构成程序设计的大厦。

为什么要学习数据结构?

这种逻辑方式有其合理性,首先基本的原子类型是最小的单位,不可再分解。而构造类型包含元素属性“同质”的数组和元素属性“异质”的结构体,还有可以引用变量地址的指针。到这里为止,程序语言还无法解决复杂的工程问题,因此引入实用意义较强的队列、栈、链表等,这些ADT可以表征实际生产生活某些场景的抽象,能够用这些ADT解决实际问题。这也就显示了ADT的巨大作用。

比较明显的一个感受是,如果只是学完了C语言或者其他程序设计语言,而没有学习数据结构的话,会感觉只能做一些简单的数学问题,比如冒泡排序啊,插入排序啊等等,基本上只能做一些非常小的事情,相对于可以编写一个平台级软件或者实用性较强的工具软件还相去甚远。很多学完初级程序设计的同学都有这个感觉。因此,为了学好学深程序设计,有必要掌握数据结构。

数据结构是如何定义和使用的?

因为一个抽象数据类型是按它的行为定义的,所以实现抽象数据类型的程序员可以自由地改变它的基本表示方式。通常,一个抽象数据类型是由一个接口输出,并有一组定义其行为方式的函数。

比如定义一个队列抽象,就需要有创建新队列、出队、入队、查询等功能函数,这些函数都要包含在队列ADT中。

表示方式是抽象数据类型实现的属性之一。对于任何抽象来说,只要保持接口不变,我们可以改变其实现方式。

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/80279847