
线性表(List):由零个或多个数据元素组成的有限序列
这里需要强调几个关键的地方:
1. 首先他是一个序列,也就是说元素之间是有个先来后到的;
2. 若元素存在多个,则第一个元素无前驱,而最后一个元素无后继,其他元素都有且只有一个前驱和后继;
3.另外,线性表强调是有限的,事实上无论计算机发展到多强大,他所处理的元素都是有限的;
如果用数学语言来进行定义,可如下:
若将线性表记为(a1,...,ai-1,ai,ai+1,...an),则表中ai-1领先于 ai,ai 领先于 ai + 1,称 ai - 1 是 ai 的直接前驱元素,ai+1 是 ai 的直接后继元素;
所以线性表元素的个数 n(n>=0) 定义为线性表的长度,当 n = 0 时,称为空表;
例如在C语言中,按照取值的不同,数据类型可以分为两类:
1. 原子类型 -> 不可以在分解的基本类型,例如 整型、浮点型、字符型等;
2. 结构类型 -> 由若干个类型组合而成,是可以再分解的,例如整型数组是由若干个整型数据组成的;
3. 抽 象 -> 是指抽取出事务具有的普遍性的本质;他的要求出问题的特征而忽略非本质的细节,是对具体事务的一个概括。抽象是一种思考问题的方式,他隐藏了复杂的细节;
1. 我们对已有的数据类型进行抽象,就有了抽象数据类型;
2. 抽象数据类型(Abstract Data Type , ADT)是指一个数学模型及定义在该模型上的一组 *** 作;
3. 抽象数据类型的定义仅取决于它的一组逻辑特征,而与其在计算机内部如何表示和实现无关;
4. 比如 1 + 1 = 2 这样一个 *** 作,在不同CPU的处理上可能不一样,但由于其定义的数学特征相同,所以在计算机编程者看来,他们都是相同的
5. “抽象”的意义在于数据类型的数学抽象特征;
6. 而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者在设计软件程序时自己定义的数据类型;
7.例如一个 3D 游戏中,要定位角色的位置,那么总会出现 x,y,z三个整型数据组合在一起的坐标。我们就可以定义一个 point 的抽象数据类型,他拥有 x,y,z三个整型变量,这样我们就可以方便的对一个角色的位置进行 *** 作;
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)