We are all in the gutter, but some of us are looking at the stars. 身在井隅,心向璀璨。
-------------------------------------------------------------------------------------------------
线性结构
最常用最简单的数据结构,而线性表是一种典型的线性结构,基本特点是,线性表中的数据元素是有序且有限的。在这种结构中:
1. 存在一个唯一的被称为“第一个”的数据元素
2. 存在一个唯一的被称为“最后一个”的数据元素
3. 除第一个元素外,每个元素均有唯一一个直接前驱
4. 除最后一个元素外,每个元素均有唯一一个直接后继
线性表定义:
是由n(n>=0)个数据元素(节点),a1,a2…an组成的有限序列。该序列中所有的数据节点具有相同的数据类型,其中数据元素的个数n称之为线性表的长度。

线性表的抽象数据类型定义
ADT List{
数据对象:D={ | ∈ ElemSet, i=1,2,...,n, n≥0 }
数据关系:R1={ <ai-1 ,ai >| ,∈D, i=2,...,n }
数据操作:
InitList(*L):初始化操作,建立一个空的线性表
ListEmpty(L):若线性表为空,返回True,否则返回False
ClearList(*L):将线性表清空。
GetElem(L,i,e):将线性表L中的第i个位置元素赋值给e
LocateElem(L,e):在线性表L中查找与给定值e相等的元素,如果查找成功返回该元素在
表中序号表示成功,否则,返回0表示失败
ListInsert(*L,i,e):在线性表L中的i个位置插入新元素e
ListDelete(*L,i,*e):删除线性表L中地i个位置元素,并用e返回其值
ListLength(L):返回线性表L的元素个数
}
线性表的顺序存储结构
顺序存储:
把线性表的节点按逻辑顺序依次存放在一组地址连续的存储单元里。用这种方法存储的线性表简称顺序表。
特点:
线性表的物理顺序与逻辑顺序一致;数据元素之间的关系是以元素在计算机内“物理位置相邻”来体现的。
注:
在高级语言环境下,数组具有随机存取的特性,因此借助数组来表示顺序表
结构:
typedef struct SeqList
{
ElemType array[MAXSIZE];
int count;//保存线性表中的元素个数
}SeqList
线性表的链式存储结构
链式存储:
用一组任意的存储单元存储线性表中的数据元素,用这种方式存储的线性表简称为线性链表。
特点:
存储单元可连续可不连续,可零散分布任意位置,因此链表中的元素的逻辑顺序与物理顺序不一定相同。
结构:
为了正确表示元素间的逻辑关系,在存储每个元素值的同时,还必须存储其后继节点的位置,称为指针或链,这两部分组成了链表的节点结构。

基本操作:
1. 节点赋值
LNode *p;
p=(LNode*)malloc(sizeof(LNode));
p->data=20;
p->next=NULL
2. 指针的操作

-------------------------------------------------------------------------------------------------
看完点个赞吧,给别人点赞,会让自己觉得自己是一个善良的人。
关注一下,让自己觉得自己是一个友善的人,开放包容的人,人生会不经意间美妙一点点。
我的收获期待与你分享,希望一同成长!