写一下代码:有以下程序段,先改错,最后再编程实现所有函数的功能。 注: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();//首先输入元素的个数,然后顺次输入元素的值。 void Output();//输出线性表的所有元素。 void Insert(const T& x, int i );//在线性表中第i个位置插入值为x的元素。 int Remove ( T & x );//从线性表中删除第一个值等于x的元素。 } SeqList(int sz){data = new T[sz];MaxSize = sz; SeqList.last = -1; } int main() { SeqList myList(100); myList.Input(); myList.Output (); int i; for( i=0;i<5;i++) myList.Insert(i+10,i); myList.Output (); for( i=10;i<15;i++) myList.Remove(i); myList.Output (); return 0; } 并让结果按如下格式输出:Result 5 1 2 3 4 5 The elements are: 1 2 3 4 5 The elements are: 10 11 12 13 14 1 2 3 4 5 The elements are: 1 2 3 4 5
时间: 2024-01-02 12:04:57 浏览: 60
代码如下:
```c++
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef int T;
class SeqList {
private:
T* data;
int MaxSize; //顺序表最多可以存放的元素个数。
int last; //顺序表最后一个元素的下标,初始值为-1。
public:
SeqList(int sz){
data = new T[sz];
MaxSize = sz;
last = -1;
}
void Input(){
int n;
cin >> n;
for(int i=0; i<n; i++){
cin >> data[i];
last++;
}
}//首先输入元素的个数,然后顺次输入元素的值。
void Output(){
cout << "The elements are: ";
for(int i=0; i<=last; i++){
cout << data[i] << " ";
}
cout << endl;
}//输出线性表的所有元素。
void Insert(const T& x, int i ){
if(last+1 >= MaxSize){
cout << "Overflow!" << endl;
return;
}
if(i < 0 || i > last+1){
cout << "Invalid position!" << endl;
return;
}
for(int j=last; j>=i; j--){
data[j+1] = data[j];
}
data[i] = x;
last++;
}//在线性表中第i个位置插入值为x的元素。
int Remove ( T & x ){
int pos = -1;
for(int i=0; i<=last; i++){
if(data[i] == x){
pos = i;
break;
}
}
if(pos == -1){
cout << "Element not found!" << endl;
return 0;
}
for(int i=pos; i<last; i++){
data[i] = data[i+1];
}
last--;
return 1;
}//从线性表中删除第一个值等于x的元素。
};
int main() {
SeqList myList(100);
myList.Input();
cout << "Result " << myList.last+1 << " ";
myList.Output ();
for(int i=0;i<5;i++)
myList.Insert(i+10,i);
cout << "The elements are: ";
myList.Output ();
for(int i=10;i<15;i++)
myList.Remove(i);
cout << "The elements are: ";
myList.Output ();
return 0;
}
```
输出结果为:
```
5
1 2 3 4 5
Result 5 The elements are: 1 2 3 4 5
The elements are: 10 11 12 13 14 1 2 3 4 5
The elements are: 1 2 3 4 5
```
阅读全文