马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 最强废铁h 于 2021-10-20 23:29 编辑
就是编译不成功,出错的地方看不懂,百度好像也没有
#include<stdio.h>
#include<malloc.h>
#define MAXLEN 100
typedef char DataType;
typedef struct
{
DataType data[MAXLEN];
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[i-1];
return 1;
}
}
//按值查找
int Locate(SeqList *L,DataType x)
{
int i=0;
while(i<L->Length && L->data[i]!=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[i-1]=L->data[j];
L->Length++;
return 1;
}
for(j=L->Length-1;j>=i-1;j--)
{
L->data[j+1]=L->data[j];
L->data[i-1]=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[i-1];
for(j=i;j<L->Length;j++)
{
L->data[j-1]=L->data[j];
L->Length--;
return 1;
}
}
//输出
void DispList(SeqList *L)
{
int i;
for(i=0;i<L->Length;i++)
{
printf("%5d",L->data[i]);
}
}
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;
}
|