@author: 小甲鱼
@location: http://study.163.com/course/courseLearn.htm?courseId=468002#/learn/video?lessonId=598013&courseId=468002

1.线性表的定义
只需要记住前面一个人是谁就行。
- 线性表(List): 由0个或者多个数据元素组成的有限序列。
- 强调几个关键地方:
- 1.它是一个序列,元素之间有先来后到的顺序
- 2.元素存在多个: 第一个元素无前驱,最后一个元素无后继,其他元素都有且 只有一个前驱和一个后继
- 3.线性表强调的是有限;事实上无论计算机发展到多强大,它所处理的元素都是有限的。
前驱后继(空表:表示人员解散,队还存在)

2.抽象数据类型
1.数据类型的定义是什么?
数据类型: 是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
编程语言 例如有:整型, 浮点型, 字符型
2.为什么当初会考虑到数据类型这个东西呢?
因为需求不同,大家需要给住房的标识名称。
例如:
1.单身小青年外出,找了一家公寓,号码:1111
2.双身情侣外出,找了一家酒店,号码:Ultima Thule(天涯海角)
3.公司的办公楼,起名叫: 伦敦、伊拉克、诺曼底(各种装逼小技巧)
此处不是教大家装逼的技巧,只是告诉大家,住房的标识名称各种类型。
1.同样,在计算机中,内存不是无限大,如果只是整型:1+1=2这样 加减乘除运算 显然不需要开辟很大的内存空间。
2.如果是 1.23344555+2.34455555=? 这样带有大量小数的,则需要开辟比较大的内存空间才行。
3.因此诞生了 数据类型,用于不同的计算;从而针对性的合理利用资源。
3.C语言中数据类型划分 和抽象定义:
- C语言数据类型分为2种:
-
原子类型: 不可以在分解的基本类型,例如:整型、浮点型、字符型 等 -
结构类型: ????️若干个类型组合而成,是可以在分解的, 例如:整型数组是由若干整型数据组成的。
-
- 抽象: 是指抽取出 事物具有的普遍性的本质。它要求抽出问题的特征而忽略非本质的细节,是对具体事物的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节。
4.抽象数据类型
对已有的数据类型进行抽象,就有了抽象数据类型。
抽象数据类型(Abstract Data Type, ADT)是指一个数据模型及定义在该模型上的一组操作。
抽象数据类型的定义:取决于它的一组逻辑特征。(与其他的计算机内部如何表达和实现无关)
大家总觉得模型是一个高大上的名词,现在我们百度一下。
模型是对于现实世界的事物、现象、过程或系统的简化描述,或其部分属性的模仿。
数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。
数学角度:模型是满足一定条件,包含特定经济意义的方程或方程组。
面试的时候,如果**强制装逼技巧:
不就是一个对现实的简化抽象吗?装什么逼?
不就是一个方程吗? 装什么逼?
-
抽象的意义在于数据类型的数学抽象特性。 - 而且,抽象数据类型不仅仅指那些已经定义病实现的数据类型,还可以是计算机编程者在设计软件程序时 自己定义的数据类型。


抽象数据类型的标准格式:
ADT 抽象数据类型名
Data
数据元素之间逻辑关系的定义
Operation
操作
endADT
5.线性表的 创建/重置 和 初始化的过程
- 1.小甲鱼把鱼油们按照规律安排成一队,并且时长期食用这样的顺序排队,大家只需要技术,前驱鱼油就行;这个过程就是: 线性表的
创建和初始化的过程。 - 2.由于小甲鱼刚开始没有经验(所有人一开始都没有..),发现按照名字字母排队,很难看; 所以重新按照升高来排序,发现效果还不错;这个过程就是: 线性表
重置和初始化的过程。 - 3.线性表的
删除和插入动作,例如:黑夜同学肚子疼离开,下午有回来咯。
抽象数据类型的定义格式:


5.线性表的并集实战案例

思路比较简单:
循环遍历B集合,查看B中的元素是否在A中,如果不在,就插入到A集合中
转载于:https://my.oschina.net/repine/blog/682809