|
发表于 2022-10-24 02:00:23
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本鱼油很菜,初学顺序表,c语言也学的不好,能不能帮我看看下面的代码怎么改,调试的时候一直报错。
问题在于下面的 int LocateELem 这一段的
L.elem[i]==e 会报错,不知道怎么改
#include <iostream>
using namespace std;
#define MAXSIZE 100
#define OK 1
#define ERROR 0
typedef struct
{
char ch;
}ElemType;
typedef int Status;
typedef struct
{
ElemType *elem; //储存空间的新地址
int length; //当前长度
}SpList; //顺序表的类型为SpList
Status IntList(SpList &L)
{//建造一个空的顺序表L
L.elem = new ElemType[MAXSIZE];
if (!L.elem) exit(OVERFLOW);
L.length = 0;
return OK;
}
Status GetElem(SpList L, int i, ElemType &e)
{
if (i<1 || i>L.length) return ERROR; //判断i值是否合理,若不合理,返回ERROR
e = L.elem[i - 1]; //elem[i-1]单元储存第i个数据元素
return OK;
}
int LocateELem(SpList L, ElemType e, int i)
{//在顺序表L中查找值为e的数据元素,返回其序号
for (i = 0;i < L.length;i++)
if (L.elem[i]==e) return i+1; //查找成功,返回序号i+1
return 0; //查找失败,返回0
}
Status ListInsert(SpList & L, int i, ElemType e, int j)
{ //在顺序表L中第i个位置之前插入元素阿,i值的合法范围是1<=i<=L.length+1
if((i < 1) || (i > L.length + 1) ) return ERROR; //i值不合法
if (L.length == MAXSIZE) return ERROR; //当前储存空间已满
for (j = L.length - 1;j >= 1 - 1;j--)
L.elem[j]; //插入位置及之后的元素后移
L.elem[i - 1] = e; //将新元素e放入第i个位置
++L.length; //表长+1
return OK;
}
帮帮新鱼油吧 |
|