a-b-c-d-e-f
1.他们的数据类型一致 2.除了第一个元素a,每一个元素有且只有一个前驱元素。 3.除了最后一个元素f,每一个元素都有且只有一个的直接后继 4.元素之间关系是一对一。
所以从 a 到 f 就是一条线 就是线性表
####线性表有哪些方法:
- InitList(*L) : 初始化操作,建立一个空的线性表
- ListEmpty(L): 判断线性表是否为空,若线性表为空 返回true,否则返回true
- ClearList(*L):线性表清空
- GetElem(L,i,*e):讲线性表L中的第i个位置的元素返回给e
- LocateElem(L,e) :在线性表L中查找 给定值e 相等的 元素,如果查找成功,返回该元素在表中的序列号,否则失败返回0
- ListInsert(*L,i,e):在线性表中第i个位置插入新的元素e
- ListDelete(*L,i,e):删除线性表中的第i个元素,并且用e 返回其值
- listLength(L):返回线性表的长度
######线性表顺序存储: 把一定内存空间内,存储相同的数据类型依次放在这块 内存空间
顺序线性表结构代码
#define MAXSIZE 20
typedef int ElemType
typedef struct
{
ElemType data [MAXSIZE];
int length;
} Sqlist ;
#######链试线性表(单向)
a-b-c-d-e-f
1.他们的数据类型一致 2.除了第一个元素a,每一个元素有且只有一个前驱元素。 3.除了最后一个元素f,每一个元素都有且只有一个的直接后继 4.元素之间关系是一对一。 5.除了最后一个元素 f 都有后继元素的地址,最后一个为null
所以从 a 到 f 就是一条链试线性表
链试线性表结构代码
typedef struct Node {
ElemType data;
struct Node *next;
} Node, \*LinkList;
######链试线性表的比顺序表的 优点(单向) 删除 和 添加 不需要大规模移动,时间复杂度为O(1) 而顺序线性的O(n) ######缺点 多占 一空间 ######同理 双向链表
typedef struct Node {
ElemType data;
struct Node *next, *prev;
}Node, *LinkList;
######链试线性表的比顺序表的 优点 (双向) 删除 和 添加 不需要大规模移动,时间复杂度为O(1) 并且可以查找 上前驱元素
######缺点 多占 俩空间
- ######看我那么可爱n(≧▽≦)n
- 关注我的微薄 (梁同桌):http://weibo.com/tongrenyinsheng
- 个人博客: www.liangtongzhuo.com
- ios 个人写的app (同人音声)ASMR音乐