关于数据类型与在java语言中的应用(一)
说来惭愧,笔者在大学期间所学并非计算机,所以对于数据类型所知甚少,但也勉强是找到合适的工作机会,在工作之余希望通过学习来弥补专业上的不足,以精进自己的技术与专业知识。本篇文章用来记录我的一下所学以及看法,希望通过这篇文章能够加深对所学的知识的印象,同时也希望能帮到同样也在学习的你!
1. 什么是数据结构
数据结构是研究数据和数据存储之间的关系的以及对数据实现各种操作的一门科学。
简单可以记为:
Data-Structure:(D,R)
D数据元素的有效集合,R是与D之间的关系
这个关系表示的是数据元素之间存在的逻辑结构
而数据在计算机内存储则是称为数据的存储结构,或者说物理结构
我们通常说的数据结构一般指的就是逻辑结构,他表示的是数据元素之间的关系,换言之就是从操作对象中抽取出来的抽象数学模型。但因为它是存储在计算机上的,所以我们有必要研究数据的存储结构。
存储结构指的是数据在计算机内的表示,又称之为物理结构。它分为2种形式:
1.顺序映像
2.非顺序映像(链式存储结构,散列存储结构,索引存储结构)
数据类型:对应每个数据元素确定其取值范围以及在值上定义的一组操作
分为原子类型,结构类型两种,顾名思义,原子类型不可拆分
数据结构根据周期分类:静态结构,动态结构
总之,数据结构的研究可归纳为一下3个方面:
1) 研究数据元素之间的逻辑结构
2)研究数据在计算机内的存储结构
3)研究如何在数据的各种结构上实施有效的操作处理(算法)
抽象数据类型和数据结构
抽象数据类型(Abstract Data Type,ADT)是指抽象数据组织与之相关的操作。
ADT伪代码描述{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名
抽象数据类型的定义由一个值域和定义在该值域上的一组操作组成,如果按其值的不同特性,分为3种:
1. 原子类型:属于原子类型的变量的值是不可再分的
2. 固定聚合类型:属于该类型的变量的值由确定数目的成分按照其某种结构组成
3. 可变聚合类型:属于该类型的变量的组成分数不确定,其中序列的长度是可以改变的
学习数据结构的意义
算法+数据结构=程序
想要使我们的程序能够解决问题,那么应该选择合适的数据结构表示问题,然后写出有效的算法,两者缺一不可,然而效率的高低就取决于结构的好坏,与算法的优劣了。
[参考] 《数据结构与算法分析----Java语言描述》