C语言数据结构——线性表

    科技2026-09-23  18

    今天又是活力满满的一天!加油呀! 今天开始学习线性表啦! 一、何为线性表? 线性表就像我们买票排队一样,具有线一样性质的结构。 线性表的官方定义:由零个或多个数据元素组成的有限序列。 二、线性表的特点: ——元素之间有先来后到,具有一定的顺序。 ——若元素存在多个,(会牵扯到前驱后继的概念),则第一个元素无前驱,最后一个元素无后继,且其他元素都有且只有一个前驱和后继。 ——线性表强调的是有限的,无论计算机发展到多强大,它所处理的元素都是有限的。 例子如下: 所以线性表元素的个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。 三、抽象数据类型: 1.在C语言中,按照取值的不同,数据类型可以分为两类: ——原子类型:不可以再分解的基本类型,如整型、浮点型、字符型等。 ——结构类型:由若干个类型组合而成,是可以再分解的,例如整型数组是由若干整形数据组成的。 2.抽象数据类型(Abstract Data Type ,ADT)是☞一个数学模型及定义在该模型上的一组操作。 所谓抽象数据类型就是把数据类型和相关操作捆绑在一起。 四、线性表有什么相关操作呢? Operation: InitList(*L):初始化操作,建立一个空的线性表L。 ListEmpty(L):判断线性表是否为空表,若线性表为空表,返回true,否则返回false。 ClearList(*L):将线性表清空。 GetElem(L,i,*e):将线性表L中的第i个位置元素值返回给e。 LocateElem(L,e):在线性表 L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。 ListInsert(i*L,i,*e):在线性表L中第i个位置插入先元素e。 ListDelete(*L,i,*e):删除线性表L中第i个位置元素,并用e返回其值。 **ListLength(L)😗*返回线性表L的元素个数。 看下面一个例子: 循环遍历集合B中的每一个元素,判断当前元素是否存在A中,若,不存在,则插入A中。 五、线性表的顺序存储结构 在上一篇谈到线性表有两种物理存储结构:顺序存储结构和链式存储结构。那么线性表的顺序存储结构指的是怎么存储的呢? 线性表的顺序存储结构☞用一段地址连续的存储单元依次存储线性表的数据元素。如: 顺序存储的结构代码: 总结:顺序存储结构封装需要三个属性: ——存空间的起始位置,数组data,它的存储位置就是线性表存储空间的存储位置。 ——线性表的最大存储容量:数组的长度MaxSize。(初始化后不会在改变) ——线性表的当前长度:length。(会随时变化。) 地址计算方法: 数据结构学起来真的有点费劲呀!今天就学到这里ba!

    Processed: 0.008, SQL: 9