有以下程序段,先改错,最后再编程实现所有函数的功能。 注:main()函数已给出,不得修改,提交时需要提交main函数。 #include<iostream.h> #include<stdlib.h> typedef int T class SeqList { private: T data; int MaxSize; //顺序表最多可以存放的元素个数。 int last; //顺序表最后一个元素的下标,初始值为-1。 void SeqList(int sz); void Input();//首先输
时间: 2024-01-22 20:17:34 浏览: 131
程序段中存在以下错误:
1. 库文件应该使用 <iostream> 和 <cstdlib>,而不是<iostream.h>和<stdlib.h>。
2. 类型定义语句应该使用关键字 typedef,应该写成:typedef int T;
3. 类的构造函数名应该与类名相同,应该写成:SeqList(int sz);
4. 函数 Input() 的返回类型应该是 void,不能是 int。
下面是修改后的程序段:
```cpp
#include <iostream>
#include <cstdlib>
typedef int T;
class SeqList {
private:
T* data;
int MaxSize;
int last;
public:
SeqList(int sz);
void Input();
void Output();
int Get(int i);
bool Insert(int i, T x);
bool Remove(int i);
};
SeqList::SeqList(int sz) {
MaxSize = sz;
data = new T[MaxSize];
last = -1;
}
void SeqList::Input() {
for (int i = 0; i <= last; i++) {
std::cin >> data[i];
}
}
void SeqList::Output() {
for (int i = 0; i <= last; i++) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
int SeqList::Get(int i) {
if (i >= 0 && i <= last) {
return data[i];
}
else {
std::cout << "Error: index out of range." << std::endl;
exit(1);
}
}
bool SeqList::Insert(int i, T x) {
if (last == MaxSize - 1) {
std::cout << "Error: overflow." << std::endl;
return false;
}
if (i < 0 || i > last + 1) {
std::cout << "Error: index out of range." << std::endl;
return false;
}
for (int j = last; j >= i; j--) {
data[j + 1] = data[j];
}
data[i] = x;
last++;
return true;
}
bool SeqList::Remove(int i) {
if (i < 0 || i > last) {
std::cout << "Error: index out of range." << std::endl;
return false;
}
for (int j = i; j < last; j++) {
data[j] = data[j + 1];
}
last--;
return true;
}
int main() {
SeqList L(10);
L.Input();
L.Output();
L.Insert(3, 100);
L.Output();
L.Remove(5);
L.Output();
std::cout << L.Get(4) << std::endl;
return 0;
}
```
函数的功能如下:
1. 构造函数 SeqList(int sz):创建一个大小为 sz 的顺序表。
2. 函数 Input():从标准输入读入顺序表的数据。
3. 函数 Output():将顺序表的数据输出到标准输出。
4. 函数 Get(int i):返回顺序表中第 i 个元素的值。
5. 函数 Insert(int i, T x):在顺序表的第 i 个位置插入元素 x。
6. 函数 Remove(int i):删除顺序表的第 i 个元素。
阅读全文