C语言顺序表
时间: 2023-10-29 17:16:47 浏览: 78
C语言:顺序表
顺序表是一种线性表,它的元素排列在一块连续的存储区中。C语言中可以通过数组来实现顺序表。以下是一个简单的顺序表的实现示例:
```c
#define MaxSize 50 // 定义顺序表的最大长度
typedef struct {
int data[MaxSize]; // 用数组存储顺序表的元素
int length; // 记录当前顺序表的长度
} SeqList;
// 初始化顺序表
void InitList(SeqList *L) {
L->length = 0; // 初始长度为0
}
// 插入元素
int Insert(SeqList *L, int i, int x) {
if (i < 1 || i > L->length + 1 || L->length == MaxSize) {
return 0; // 插入位置不合法或者顺序表已满,返回0
}
for (int j = L->length; j >= i; j--) {
L->data[j] = L->data[j - 1]; // 将元素后移
}
L->data[i - 1] = x; // 插入新元素
L->length++; // 长度加1
return 1;
}
// 删除元素
int Delete(SeqList *L, int i) {
if (i < 1 || i > L->length) {
return 0; // 删除位置不合法,返回0
}
for (int j = i; j < L->length; j++) {
L->data[j - 1] = L->data[j]; // 将元素前移
}
L->length--; // 长度减1
return 1;
}
// 查找元素
int Find(SeqList L, int x) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == x) {
return i + 1; // 返回查找到的元素位置
}
}
return 0; // 未查找到,返回0
}
```
这个顺序表的实现包括初始化、插入、删除和查找操作。你可以根据自己的需要进行修改和扩展。
阅读全文