定义和概念
定义
概念
直接前驱元素
直接后继元素
线性表的长度
空表
位序
元素在线性表中的位置,例如Ai是线性表中的第i个元素,i是A元素的位序
线性表的抽象数据类型
线性表的定义
除a1外其他元素都有且只有一个直接前驱元素,除an外都有一个后继元素,元素与元素是一一对应的关系。
定义方法一:固态定义
通过编译器提前定义好数组、链表等,个数有限,且不能在使用过程中增加
#define MAXLIST 100void initList(){int list[MAXLIST];//长度为100的数组}
定义方法二:动态定义
通过动态内存分配的方法来分配空间,例如链表和栈
#include <malloc.h>void initList(){int *p = NULL;p = (int*)malloc(sizeof(int) * 100);//100个int大小的内存空间}
定义方法三:混合定义
通过固态定义长度、动态定义大小的方法或是反过来来定义特殊情况下需要的线性表
#include<malloc.h>#define MAXLIST 100void initList(){int *parr[100];for(int i = 0;i < 100; i++){parr[i]=(int *)malloc(sizeof(int)*100);}}//定义一百个指针数组,每个指针数组都存储着大小为100的动态内存空间//不支持指针的语言传引用
线性表的基本操作
初始化操作
参数列表
判断空操作
参数列表
清空表操作
参数列表
删除表操作
参数列表
遍历表操作
参数列表
返回个数操作
参数列表
- 传入表头
 - 
返回值
 接收个数
- 
实现方式
如果有计数则通过计数判断,没有则通过标记头元素的地址,然后计算第一个元素的大小,开始遍历直至地址重合。或是直接计算空间大小除以子空间大小。
获取元素操作
参数列表
 表地址
- 元素位置
 - 
返回值
 是否成功获取
- 获取的值
 - 
实现方式
查找判断操作
参数列表
 接收查找元素或指针
- 
返回值
 返回是否存在
- 返回是否成功
实现方式
通过遍历判断是否存在,如果存在多个则返回假,或传回包含多个元素的地址指针数组 
