数据结构C语言顺序表头文件完整代码
时间: 2023-05-22 19:04:36 浏览: 193
数据结构顺序表c++代码
5星 · 资源好评率100%
以下为数据结构C语言顺序表头文件的完整代码:
```
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储顺序表的元素
int length; // 顺序表的当前长度
} SqList; // 定义顺序表的结构体类型
// 初始化顺序表
void InitList(SqList *L) {
L->length = 0;
}
// 在指定位置插入元素
bool ListInsert(SqList *L, int i, int e) {
if (i < 1 || i > L->length + 1 || L->length == MAXSIZE) {
return false; // 插入位置不合法或者顺序表已满,返回 false
}
for (int j = L->length; j >= i; j--) {
L->data[j] = L->data[j-1]; // 将第 i 个位置及以后的元素往后移动一位
}
L->data[i-1] = e; // 将新元素 e 放到位置 i 上
L->length++; // 长度加 1
return true;
}
// 删除指定位置的元素
bool ListDelete(SqList *L, int i, int *e) {
if (i < 1 || i > L->length) {
return false; // 删除位置不合法,返回 false
}
*e = L->data[i-1]; // 将要删除的元素赋值给变量 e
for (int j = i; j < L->length; j++) {
L->data[j-1] = L->data[j]; // 将第 i 个位置之后的元素往前移动一位
}
L->length--; // 长度减 1
return true;
}
// 查找指定元素第一次出现的位置
int LocateElem(SqList L, int e) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == e) {
return i+1; // 返回元素在顺序表中的位置
}
}
return 0; // 没有找到返回 0
}
```
希望对您有所帮助!
阅读全文