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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
越界| 合法范围 |越界
我的理解是
错误位置是不是超出了数组所设定的20的大小,即超出合法范围。
如果是这样的话,你对未知内存区域(您提到的错误未知)进行赋值,程序基本都会蹦。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-21
你自己不会单步调试?

数据结构(C语言版),求高手解决。。
1.二叉树是度为2的有序树( )【答案】× 2.完全二叉树一定存在度为1的结点( )【答案】× 3.深度为K的二叉树中结点总数≤2k-1( )【答案】√ 4.由一棵二叉树的先序序列和后序序列可以惟一确定它( )【答案】× 5.完全二叉树中,若一个结点没有左孩子,则它必是树叶...

关于数据结构(C语言版)的两个问题
如果为右括号`)`,则检查`stack`是否为空,如果不为空则弹出栈顶元素,将`top`减一。在遍历结束后,检查`stack`是否为空。如果为空,表示所有括号均匹配,返回1;否则表示存在未匹配的括号,返回0。通过上述程序,可以实现对给定字符串中括号匹配性的判断,对于数据结构(C语言版)中的括号匹配问题,...

求解数据结构c语言中串的问题
在C语言中处理字符串操作时,理解基础函数的用法至关重要。举例来说,如果字符串s1和m之间仅由一个'号分隔,而无空格存在,字符串长度则应为13。函数SubString(s1,8,5)的作用是从字符串s1的第8个字符开始,提取连续的5个字符,结果为"tuden"。函数index(s1,'u')则在字符串s1中搜索字符'u',若...

数据结构c语言版一道题求解
include <stdio.h>#include <stdlib.h>typedef int DataType; struct SeqList{ int MAXNUM; \/* 顺序表中最大元素的个数*\/ int n; \/* 存放线性表中元素的个数n≤MAXNUM *\/ DataType *element; \/* element[0],element[1],…,element[n - 1]存放线性表中的元素 ...

C语言版的数据结构问题:数据结构和数据类型的关系?
数据类型 用enum 定义,共用存储单元 enum{int a=1 ,int b ,char c=‘c’}e,b。enum其实相当于一个常量。只是这个常量由多个数值组成的一个集合而已。如这样用e=a,printf("%d",e)输出a;e=b,printf("%d",e)输出b的值(b等于2)。e=c,printf("%c",e) 输出字符c的值。

c语言版 数据结构问题
1.找到结构的头(H)和尾(R)2.下面是伪代码 while(H在R之前) do begin if data_at[H]!=data_at[R] then return false;\/\/肯定不对称 H<-后继;R<-前驱;end;return true;时间复杂度O(strlen(s))既为表长

c语言数据结构。长度为11的有序表,采用折半查找,在等概率情况下查找成功...
5.一命击中的长度为1 两次击中的长度为2 三次击中的长度为4 四次击中的长度为8 五次击中的长度为16 所以,长度为11的有序表的平均查找次数约为5。

C语言数据结构的一个基本问题
1 int read_2D_Array(int **array, int i, int j, int column)2 { \/\/i row j column ,总行数为column 3 return((*(int*)array + i*column + j));4 } 以上函数的参数第一行的int **array是函数参数这个参数说明该函数参数列表一接收的数据类型为int ** 型的变量 ...

数据结构问题。。。c语言
main是入口函数,调用printN这个函数。所以,只要确保printN定义在main函数之前,或者是在main调用之前申明。都可以。所以,你可以排成:1、include <stdio.h> void printN(int n){。。。}\/\/把代码放在main前面就不需要申明语句。int main(){ 。。printN(N)。。。} 2、include <stdio.h> vo...

关于数据结构(C语言)的几个题
1.随意画几个二叉树就知道了,这里空链域用ε表示,数一数结点个数与ε个数就知道是n+1了 2.具体过程在图中给出。3.第一步将数据(假设为e)放入s的data中;第二步s的后继指向q的后继节点;第三步q的后继指向s 4.查找72只需2步:第一步:设立low、high与mid指针,将72与mid指向的值...

相似回答
大家正在搜