数据结构顺序表上基本操作的实现
时间: 2023-10-03 16:08:01 浏览: 45
顺序表是一种基本的数据结构,它是在内存中连续存储的一组元素。下面是顺序表上常见的基本操作的实现:
1. 初始化操作:创建一个空的顺序表,并设置初始长度为0。
```
void InitList(SeqList *L) {
L->length = 0;
}
```
2. 插入操作:在指定位置插入一个元素,要求该位置合法且顺序表未满。
```
bool Insert(SeqList *L, int pos, ElementType item) {
if (pos < 1 || pos > L->length + 1 || L->length >= MAXSIZE) {
return false;
}
for (int i = L->length; i >= pos; i--) {
L->data[i] = L->data[i - 1];
}
L->data[pos - 1] = item;
L->length++;
return true;
}
```
3. 删除操作:删除指定位置的元素,要求该位置合法且顺序表非空。
```
bool Delete(SeqList *L, int pos) {
if (pos < 1 || pos > L->length) {
return false;
}
for (int i = pos; i < L->length; i++) {
L->data[i - 1] = L->data[i];
}
L->length--;
return true;
}
```
4. 查找操作:根据指定位置获取元素的值,要求该位置合法且顺序表非空。
```
bool GetElement(SeqList L, int pos, ElementType *item) {
if (pos < 1 || pos > L.length) {
return false;
}
*item = L.data[pos - 1];
return true;
}
```
5. 搜索操作:根据指定值查找元素的位置,返回第一个匹配元素的位置。若未找到,则返回0。
```
int LocateElement(SeqList L, ElementType item) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == item) {
return i + 1;
}
}
return 0;
}
```