最强废铁h 发表于 2021-10-20 19:13:48

问题求助

本帖最后由 最强废铁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 19:38:43

本帖最后由 hrpzcf 于 2021-10-20 20:13 编辑

138、139、143行,x 未定义,此外函数 getLength、Listempty 未定义,是你自己写的么?

村里小黑 发表于 2021-10-20 20:00:47

你把错误内容贴出来能更快、更有针对的解决你的实际问题

最强废铁h 发表于 2021-10-20 22:54:42

算法是书上的,还有加了自己的一些理解乱写了一下

最强废铁h 发表于 2021-10-20 22:57:45

hrpzcf 发表于 2021-10-20 19:38
138、139、143行,x 未定义,此外函数 getLength、Listempty 未定义,是你自己写的么?

算法是书上的,主函数是自己的
页: [1]
查看完整版本: 问题求助