C语言数据结构问题
请你定义一个顺序表,可以对顺序表进行如下操作:在某个元素之前插入一些元素删除某个位置的元素查找某元素获取某个位置的元素遍历输出所有元素键盘输入一些命令,可以执行上述操作。...
请你定义一个顺序表,可以对顺序表进行如下操作:
在某个元素之前插入一些元素
删除某个位置的元素
查找某元素
获取某个位置的元素
遍历输出所有元素
键盘输入一些命令,可以执行上述操作。本题中,顺序表元素为整数,顺序表的第一个元素位置为1,顺序表的最大长度为20。
#include <iostream>
using namespace std;
const int MaxSize = 20;
class SeqList
{
public:
//SeqList(int data[], int n);
SeqList();
void Insert(int i,int x);
//~SeqList();
protected:
int length;
int data[MaxSize];
};
int main()
{
SeqList q;
char c;
int n;
int a;
int b;
cin >> c;
while (c != 'E')
{
switch(c)
{
case 'I':
{
cin >> n;
while (n--)
{
cin >> a>> b;
q.Insert(a, b);
}
}
}
}
return 0;
}
SeqList::SeqList()
{
length = 0;
}
void SeqList::Insert(int i, int x)
{
int j;
if (length > MaxSize)
throw "上溢";
if (i<1 || i>length+1)
throw "位置不正确";
for (j=length; j>=i; j--)
{
data[j] = data[j-1];
}
data[i-1] = x;
length++;
}为什么我输入错误的位置它什么都不提示,就直接崩溃了?这个程序怎么总是崩?哪里出错了 展开
在某个元素之前插入一些元素
删除某个位置的元素
查找某元素
获取某个位置的元素
遍历输出所有元素
键盘输入一些命令,可以执行上述操作。本题中,顺序表元素为整数,顺序表的第一个元素位置为1,顺序表的最大长度为20。
#include <iostream>
using namespace std;
const int MaxSize = 20;
class SeqList
{
public:
//SeqList(int data[], int n);
SeqList();
void Insert(int i,int x);
//~SeqList();
protected:
int length;
int data[MaxSize];
};
int main()
{
SeqList q;
char c;
int n;
int a;
int b;
cin >> c;
while (c != 'E')
{
switch(c)
{
case 'I':
{
cin >> n;
while (n--)
{
cin >> a>> b;
q.Insert(a, b);
}
}
}
}
return 0;
}
SeqList::SeqList()
{
length = 0;
}
void SeqList::Insert(int i, int x)
{
int j;
if (length > MaxSize)
throw "上溢";
if (i<1 || i>length+1)
throw "位置不正确";
for (j=length; j>=i; j--)
{
data[j] = data[j-1];
}
data[i-1] = x;
length++;
}为什么我输入错误的位置它什么都不提示,就直接崩溃了?这个程序怎么总是崩?哪里出错了 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询