设计完整的算法,实现顺序表的基本运算
时间: 2024-06-12 18:10:10 浏览: 15
好的,以下是顺序表的基本运算算法:
1. 初始化顺序表
```
void InitList(SqList &L) {
L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if (!L.elem) exit(OVERFLOW);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
}
```
2. 插入元素
```
void ListInsert(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length + 1) exit(ERROR);
if (L.length >= L.listsize) {
ElemType* newbase = (ElemType*)realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof(ElemType));
if (!newbase) exit(OVERFLOW);
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
ElemType* q = &(L.elem[i - 1]);
for (ElemType* p = &(L.elem[L.length - 1]); p >= q; --p) *(p + 1) = *p;
*q = e;
++L.length; }
```
3. 删除元素
```
void ListDelete(SqList &L, int i, ElemType &e) {
if (i < 1 || i > L.length) exit(ERROR);
ElemType* p = &(L.elem[i - 1]);
e = *p;
ElemType* q = L.elem + L.length - 1;
for (++p; p <= q; ++p) *(p - 1) = *p;
--L.length;
}
```
4. 查找元素
```
int LocateElem(SqList L, ElemType e) {
ElemType* p = L.elem;
for (int i = 1; i <= L.length; ++i, ++p) {
if (*p == e) return i;
}
return 0;
}
```
5. 获取元素
```
void GetElem(SqList L, int i, ElemType &e) {
if (i < 1 || i > L.length) exit(ERROR);
e = L.elem[i - 1];
}
```
6. 修改元素
```
void SetElem(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length) exit(ERROR);
L.elem[i - 1] = e;
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)