线性表顺序存储的类型定义
以下代码是顺序表的定义, 可以保存在 seqlist.h
数据类型定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
const int Maxsize = 100; // 定义一个足够大的常数
// 定义一个数据类型
typedef struct
{
int num;
char name[8];
} DataType;
// 定义一个存放数据的数组
typedef struct
{
DataType data[Maxsize];
int length;
} SeqList;
|
插入算法即将元素插入到顺序表 L 的第 i 个元素之前
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
int InsertSeqList(SeqList L, DataType x, int i)
{ // 将元素插入到顺序表L的第i个元素之前
if (L.length == Maxsize)
{
printf("表已满\n");
return -1;
}
if (i < 1 || i > L.length + 1)
{
printf("位置错误\n");
return -1;
}
// 依次后移
for (j = L.length; j >= i; j--)
{
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = x;
L.length++;
return 0;
}
|