数据结构C语言顺序表头文件标准代码
时间: 2023-05-22 21:04:28 浏览: 130
以下是顺序表头文件的标准代码:
```c
#ifndef SEQUENCELIST_H_INCLUDED
#define SEQUENCELIST_H_INCLUDED
#define MAXSIZE 50
typedef struct{
int data[MAXSIZE];
int length;
}SqList;
void InitList(SqList *L);
int ListLength(SqList L);
int GetElem(SqList L, int i, int *e);
int LocateElem(SqList L, int e);
int ListInsert(SqList *L, int i, int e);
int ListDelete(SqList *L, int i, int *e);
#endif
```
注意:这是一个头文件,需要在主程序中包含该头文件才能使用其中的函数。
相关问题
数据结构C语言顺序表头文件完整代码
以下为数据结构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
}
```
希望对您有所帮助!
数据结构C语言顺序表的逆置
顺序表的逆置可以通过交换表头和表尾,表头后移,表尾前移的方式实现。具体实现如下:
```c
void reverse(SqList *L) {
int i, temp;
for (i = 0; i < L->length / 2; i++) {
temp = L->data[i];
L->data[i] = L->data[L->length - i - 1];
L->data[L->length - i - 1] = temp;
}
}
```
其中,SqList 是顺序表的结构体,包含了表头指针和表长等信息。
阅读全文