一、线性表
线性表(Linear List):由同种类型数据元素构成有序序列的线性结构。
- 表中元素个数称为线性表的长度。
- 线性表没有元素时,称为空表。
- 表起始位置称为表头,表结束位置称为表尾。
线性表的顺序存储的实现
可利用数组的连续储存空间顺序存放线性表的各元素。
typedef struct LNode *List;
struct LNode
{
ElementType Data[MAXSIZE];//MAXSIZE为数组的大小
int Last;//Last代表最后一个元素
};
struct LNode L;
List PtrL;//List表示线性表结构指针
访问下标为i的元素:L.Data[i]或PtrL->Data[i]
线性表的长度:L.Last或PtrL->Last+1
主要操作的实现:
- 初始化(建立空的顺序表)
List MakeEmpty()
{
List PtrL;
PtrL = (List)malloc(sizeof(struct LNode));
PtrL->Last = -1;//Last代表最后一个元素
return Ptrl;
}
- 查找
int Find(ElementType X, List PtrL)//线性表结构指针
{
int i=0;
while(i <= PtrL->Last && PtrL->Data[i] != X)
{
i++;
}
if(i > PtrL->Last)
{
return -1;//没有找到,返回-1
}
else
{
return i;//找到后返回的是储存位置
}
}
- 插入(第i(1<=i<=n+1)个位置上插入一个值为X的新元素)
void Insert(ElementType X, int i, List PtrL)
{
int j

本文介绍了线性表的概念,包括其顺序存储和链式存储的实现方式,详细阐述了线性表的插入、删除操作。接着探讨了广义表,它是线性表的推广,元素可以是单元素或另一个广义表。最后,讨论了多重链表,解释了其在复杂数据结构如树、图存储中的应用,并以十字链表为例展示了如何存储稀疏矩阵。

3260

被折叠的 条评论
为什么被折叠?



