线性表的基本操作

  1. InitList(&L) 初始化表,构造一个空的线性表
  2. Length(L) 求表长,返回线性表L的长度,也就是L中数据元素的个数
  3. LocateElem(L, e): 按值查找操作。在表L中查找具有给定关键字值的元素
  4. GetElem(L, i); 按位查找操作,获取表L中第i个位置的元素的值
  5. ListInsert(&L, i, e): 插入操作,在表L中第i个位置上指定元素e
  6. ListDelete(&L, i, &e): 删除操作,删除表L中第i个位置的元素,并用e返回删除元素的值
  7. PrintList(L): 输出操作,按前后顺序输出线性表中L的所有元素的值
  8. Empty(L): 判空操作,若L为空表,则返回true,否则返回false
  9. DestroyList(&L): 销毁操作,销毁线性表,并释放线性表L所占有的内存空间

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <stdio.h>
#define Status int
#define FALSE 0
#define TRUE 1
#define OK 1
#define ERROR 0
#define MaxSize 10
#define ElemType int




typedef struct SeqList
{
ElemType data[MaxSize];
int length;
}SeqList;

Status InitList(SeqList *l)
{
if(l == NULL)
return OK;
l->length = 0;
return OK;
}

int Length(SeqList *l)
{
return l->length;
}

Status LocateElem(SeqList *L, ElemType e)
{
int i;
for(i = 0; i < L->length; i++)
if(L->data[i] == e)
return i+1;

return FALSE;
}

ElemType GetElem(SeqList *l, int i)
{
if(l->length == 0 || i > l->length || i < 1)
return FALSE;

return l->data[i-1];
}

Status ListInsert(SeqList *l, int i, ElemType e)
{
if(l->length == MaxSize || i < 1 || i > l->length + 1)
return FALSE;

int j;
for(j = l->length - 1; j >= i-1; j--)
l->data[j+1] = l->data[j];
l->data[i-1] = e;
l->length++;

return TRUE;
}

Status ListDelete(SeqList *l, int i, ElemType *e)
{
if(l->length == 0 || i < 1 || i > l->length)
return FALSE;

int j;
*e = l->data[i-1];
for(j = l->length - 1; j > i - 1; j--)
l->data[j-1] = l->data[j];
l->length--;
return TRUE;
}

void PrintList(SeqList *l)
{
int i;
for(i = 0; i < l->length - 1; i++)
printf("%d\t", l->data[i]);
}

Status Empty(SeqList *l)
{
if(l->length == 0)
return TRUE;

return FALSE;
}

Status DestroyList(SeqList *l)
{
if(l != NULL)
{
l->length = 0;
l = NULL;
}
return OK;
}



int main(int argc, char const *argv[])
{
SeqList *l;
InitList(l);
ListInsert(l, 1, 5);
PrintList(l);
return 0;
}

参考:https://blog.csdn.net/liubo_01/article/details/80186552