帮我用c++语言完善下列函数,Status ListInsert_Sq(SqList &L, int i, ElemType e) // 顺序表的插入 { //此处填写代码,在顺序表L中第i个位置之前插入新的元素e,若下标i非法或线性表已满无法插入数据,返回ERROR;插入成功返回值为OK //如果线性表满了, 还需输出"list is full"的提示 //如果插入位置非法,需输出提示"position is illegel" } Status GetElem_Sq(SqList L, int i, ElemType &e) // 顺序表的取值 { //此处填写代码,取顺序表L中的第i个数据元素,i值合理,参数e带回该数据元素,返回OK。 //如果i值不合理,需输出提示"position is illegel",并返回ERROR; }
时间: 2024-02-27 07:56:20 浏览: 68
完善的函数代码如下:
```c++
Status ListInsert_Sq(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length + 1) { // 判断插入位置是否非法
cout << "position is illegel" << endl;
return ERROR;
}
if (L.length == MAXSIZE) { // 判断顺序表是否已满
cout << "list is full" << endl;
return ERROR;
}
for (int j = L.length; j >= i; j--) { // 从后往前遍历,将元素后移
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e; // 插入新元素
L.length++; // 长度加1
return OK;
}
Status GetElem_Sq(SqList L, int i, ElemType &e) {
if (i < 1 || i > L.length) { // 判断取值位置是否合法
cout << "position is illegel" << endl;
return ERROR;
}
e = L.data[i - 1]; // 取出元素
return OK;
}
```
其中,`MAXSIZE` 为顺序表的最大长度,`ERROR` 和 `OK` 分别为错误和成功的返回值。函数中使用了引用参数 `&e`,可以将取出的元素值带回到函数外部。
阅读全文