顺序表删除元素pta
时间: 2023-10-17 09:15:18 浏览: 146
删除顺序表中的元素
3星 · 编辑精心推荐
对于顺序表的删除元素操作,需要考虑两种情况:
1. 删除元素不在表头
需要先遍历顺序表,找到需要删除的元素所在的位置,然后将该位置后面的所有元素向前移动一个位置,最后将表的长度减1。
具体代码实现如下:
```c++
void DeleteElem(SeqList &L, int pos)
{
if(pos < 1 || pos > L.length)
{
cout << "位置不合法!" << endl;
return;
}
for(int i = pos; i < L.length; i++)
{
L.data[i-1] = L.data[i];
}
L.length--;
}
```
2. 删除元素在表头
直接将表头位置的元素删除,然后将该位置后面的所有元素向前移动一个位置,最后将表的长度减1。
具体代码实现如下:
```c++
void DeleteElem(SeqList &L)
{
if(L.length == 0)
{
cout << "表为空!" << endl;
return;
}
for(int i = 1; i < L.length; i++)
{
L.data[i-1] = L.data[i];
}
L.length--;
}
```
其中,SeqList 是顺序表的结构体,定义如下:
```c++
#define MAX_SIZE 100
typedef struct
{
int data[MAX_SIZE];
int length;
} SeqList;
```
阅读全文