数据机构
类型(Type) 是具有相同逻辑意义的一组值得集合。
要点:
1、相同的逻辑意义, 这就是element数组 为什么要用泛型而不定义为boject对象的原因,因为如果研究的对象没有统一的逻辑意义,那么研究也就无意义了。
数据结构(Data Type)
是一个类型(逻辑意义上相同)和定义在这个类型上的操作集合。
理解为:
类型
1、在实现时对应现实世界的一类逻辑意义相同的事物
2、在实现时对应java类的成员变量
操作集合
1、在实现时对应现实世界的一类逻辑意义相同的事物的行为
2、 在实现时对应java类的方法
//想法
人有化抽象为具体的能力 , 也有化具体为抽象的能力
而我认为真正的理解为能把抽象化为具体,并且能从具体提升为抽象
具体有助于个人,而抽象有助于社会
举个例子: 语言是抽象的
我说Computer(电脑) 你脑子中首先想到的是, 电脑这两个中文字,然后再由电脑这两个抽象字 想到现实的电脑
而我说 boy girl ,你会直接想到身边的男女,而不是先想到男女这两个中文字。 是直接想到了具体的事物 、
大家仔细想想, 是不是果然是这样!而且后者的理解程度和记忆程度比前者好许多
再比如我说 unbelievable , 中文是不敢想的, 大家听到这个单词的时候!
如果先想到是某人对unbelievable 的具体表现, 例如我想到是莱万科夫斯基 9分钟 进5球时瓜拉迪奥(瓜帅)教练那 惊讶呆萌喜悦的表情和动作
还有足球解说员在球员进一个unbelievable的球时,所情不禁发出的unbelievable 。
而如果是不可想象的 难以置信的几个中文字, 那就太糟糕了
显然,前者比后者理解更深,而且前者更不容忘记。~
这是我们化抽象为具体的实例,它与我们的经历,体验有很到关系。
如果你想知道自己的理解程度, 就问问自己 你想到的是什么, 是具体的更具体的什么东西, 想到java,想到 int i =1, 想到的是什么东西
而真正困难的是化具体为抽象
再从语言讲, 每个人都会笑 ,smile , 而我们把笑抽象为文字,表情、动作、声音都抽象在这一个字中,而具体的每个人听到笑会想到不同的体现。
再例如我们学的数据结构
有一个对 类型(Type) 的定义
类型: 具有相同逻辑意义的一组值的集合
我们大多数人只能将其具体化, 例如 一箱苹果中的苹果, 具体的每一个苹果都是不一样, 色泽,大小,重量都不同, 而他们的逻辑意义都是相同的,每个苹果的色泽、大小、重量都不同, 我们化具体了, 再遇到这段定义我们会具体的理解!
而很少人能直接理解抽象,化具体为抽象,如果我们再遇到的香蕉,我们是将它类比苹果理解的, 而真正的理解我想应该是直接理解抽象, 具有相同的逻辑意义的一组集合, 就是这样
而什么是面向对象编程,就是抽象对象,还有抽象对象的行为
而且一切都是相同的,政治,经济,哲学,数学, 一切都是相同!
矩阵 {
矩阵------二维数组
特殊矩阵(零元素分布规律、不存储分布规律的零元素){
三角矩阵
对称矩阵{
线性压缩------ 一维数组
三角形的二维数组
{存储非零
元素区域}
}
}
稀疏矩阵(零元素分布不规律、不存储零元素){
三元组顺序表(排序)
三元组单链表(排序)
三元组行的单链表(排序)
三元组十字链表(排序)
}
}
广义 表抽象数据类型
1、广义表的定义
当一个线性表中包含子表时,称为广义表 、、、 即广义表中放松对表元素的原子限制,容许它们具有其自身结构。
例如(北京,上海,江苏(南京,苏州),浙江(杭州),广东(广州))
广义表是n个数据元素a0,a1,.....,a(n-1)组成的有限序列,
记为:
GList=(a0,a1,........,a(n1))
其中 ai,(0<=i<n)或者不可分的数据元素(原子),或者为可再分的广义表(子表)
约定大写字母表示 表 ,小写 字母 表示 原子。