问题求助
本帖最后由 最强废铁h 于 2021-10-20 23:29 编辑就是编译不成功,出错的地方看不懂,百度好像也没有
#include<stdio.h>
#include<malloc.h>
#define MAXLEN 100
typedef char DataType;
typedef struct
{
DataType data;
int Length;
}SeqList;
SeqList L;
void InitList(SeqList *L)
{
L=(SeqList *)malloc(sizeof(SeqList));
L->Length = 0;
}
void destroyList(SeqList *L)
{
free(L);
}
//位置查找
int GetElem(SeqList *L,int i,DataType *x)
{
if(i<1||i>L->Length)
return 0;
else
{
*x=L->data;
return 1;
}
}
//按值查找
int Locate(SeqList *L,DataType x)
{
int i=0;
while(i<L->Length && L->data!=x)
i++;
if(i>=L->Length)
return 0;
else
return i+1;
}
//插入
int InsElem(SeqList *L,int i,DataType x)
{
int j;
if(L->Length>=MAXLEN)
{
printf("顺序表已满!");
return -1;
}
if(i<1||i>=L->Length+1)
{
printf("插入位置出错!");
return 0;
}
if(i==L->Length+1)
{
L->data=L->data;
L->Length++;
return 1;
}
for(j=L->Length-1;j>=i-1;j--)
{
L->data=L->data;
L->data=x;
L->Length++;
return 1;
}
}
//删除
int DelElem(SeqList *L,int i,DataType *x)
{
int j;
if(L->Length>=0)
{
printf("顺序表为空!");
return -1;
}
if(i<1||i>=L->Length+1)
{
printf("不存在第i个元素!");
return 0;
}
*x=L->data;
for(j=i;j<L->Length;j++)
{
L->data=L->data;
L->Length--;
return 1;
}
}
//输出
void DispList(SeqList *L)
{
int i;
for(i=0;i<L->Length;i++)
{
printf("%5d",L->data);
}
}
main()
{
SeqList *L;
printf("依次插入a,b,c,d,e元素\n");
InsElem(L,1,'a');
InsElem(L,2,'b');
InsElem(L,3,'c');
InsElem(L,4,'d');
InsElem(L,5,'e');
printf("输出顺序表L:");
DispList(L);
printf("输出顺序表L的长度:%d\n",getLength(L));
printf("顺序表L为%s\n",(Listempty(L)?"空":"非空"));
GetElem(L,3,&x);
printf("顺序表L的第3个元素:%c\n",x);
printf("元素a的位置:%d\n",Locate(L,'a')) ;
InsElem(L,4,'f');
DispList(L);
DelElem(L,3,&x);
DispList(L);
destroyList(L);
return 0;
}
本帖最后由 hrpzcf 于 2021-10-20 20:13 编辑
138、139、143行,x 未定义,此外函数 getLength、Listempty 未定义,是你自己写的么? 你把错误内容贴出来能更快、更有针对的解决你的实际问题 算法是书上的,还有加了自己的一些理解乱写了一下 hrpzcf 发表于 2021-10-20 19:38
138、139、143行,x 未定义,此外函数 getLength、Listempty 未定义,是你自己写的么?
算法是书上的,主函数是自己的
页:
[1]