线性表的定义:
零个或多个数据元素的有限序列
是一个序列、即元素之间是有顺序的
是有限的、即元素的个数是有限的
线性表的长度:
有限序列中元素的个数
数学定义:
除第一个(仅有直接后继)和最后一个元素(仅有直接前驱)、其他元素都有唯一的直接前驱和直接后继
数据类型:
指一组性质相同的值的集合及定义在此集合上的一些操作的总称
抽象数据类型(ADT):
指一个数学模型及定义在该模型上的一组操作
抽象数据类型的定义仅取决于它的一组逻辑特性、而与其在计算机内部如何表示和实现无关
C中按照取值的不同数据类型分为两种:
原子类型:不可以再分解的基本类型、例如、整型、浮点型、字符型等
结构类型:由若干个类型组合而成、是可以再分解的、例如整型数组是由若干整型数据组成的
抽象:指抽取事物具有的普遍性的本质。它要求抽出问题的特征而忽略非本质的细节、是对具体事物的一个概括。抽象是一种思考问题的方式、它隐藏了繁杂的细节
线性表有两种物理存储结构:顺序存储结构、链式存储结构
顺序存储结构:
用一段地址连续的存储空间依次存储线性表中的数据元素
在内存中找个初始地址、通过占位的形式、把一定的内存空间给占了、然后把相同数据类型的数据元素依次放在这块空地中
数据长度:
线性表中能保存的数据元素最多个数
是一个固定值
线性表长度:
线性表中已经保存的数据元素的个数
是一个随时变化的值
总结:顺序存储结构封装需要三个属性
—存储空间的起始位置、数组data、它的存储位置就是线性表存储空间的存储位置
—线性表的最大存储容量、数组的长度MAXSIZE
—线性表的当前长度:length