网站建设方案计划书人员规划,qq网页版网址,秦皇岛抚宁区建设局网站,书店网站规划与建设顺序表是一种基于数组实现的线性表#xff0c;它的特点是随机存储#xff0c;可以随机访问任意位置的元素。以下是一个简单的顺序表的实现#xff08;C语言版#xff09;。 #include stdio.h
#include stdlib.h#define MAXSIZE 100 // 最大容量typedef st… 顺序表是一种基于数组实现的线性表它的特点是随机存储可以随机访问任意位置的元素。以下是一个简单的顺序表的实现C语言版。 #include stdio.h
#include stdlib.h#define MAXSIZE 100 // 最大容量typedef struct {int data[MAXSIZE]; // 数据元素int length; // 当前长度
} SqList;// 初始化顺序表
void InitList(SqList *L) {L-length 0;
}// 判断顺序表是否为空
int isEmpty(SqList *L) {return L-length 0 ? 1 : 0;
}// 获取顺序表长度
int getLength(SqList *L) {return L-length;
}// 获取指定位置的元素
int getElem(SqList *L, int i) {if (i 1 || i L-length) {printf(Error: Index out of range.\n);exit(1);}return L-data[i-1];
}// 在指定位置插入元素
void insertElem(SqList *L, int i, int e) {if (i 1 || i L-length1 || L-length MAXSIZE) {printf(Error: Index out of range or list is full.\n);exit(1);}for (int j L-length; j i; j--) {L-data[j] L-data[j-1];}L-data[i-1] e;L-length;
}// 删除指定位置的元素
void deleteElem(SqList *L, int i) {if (i 1 || i L-length) {printf(Error: Index out of range.\n);exit(1);}for (int j i; j L-length; j) {L-data[j-1] L-data[j];}L-length--;
}// 输出顺序表中的所有元素
void printList(SqList *L) {printf(List: );for (int i 0; i L-length; i) {printf(%d , L-data[i]);}printf(\n);
}int main() {SqList L;InitList(L);// 插入元素insertElem(L, 1, 1);insertElem(L, 2, 2);insertElem(L, 3, 3);insertElem(L, 4, 4);insertElem(L, 5, 5);printList(L); // List: 1 2 3 4 5// 删除元素deleteElem(L, 3);printList(L); // List: 1 2 4 5// 获取元素printf(Element at index 2 is %d\n, getElem(L, 2)); // Element at index 2 is 2// 获取长度printf(Length of the list is %d\n, getLength(L)); // Length of the list is 4return 0;
}在这个实现中我们使用结构体 SqList 来表示顺序表其中 data 数组表示数据元素length 表示当前长度。我们实现了初始化顺序表、判断顺序表是否为空、获取顺序表长度、获取指定位置的元素、在指定位置插入元素、删除指定位置的元素、输出顺序表中所有元素等操作。