马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
/*线性表之顺序表,1.建立顺序表(有关存储字母的) 2.完成插入、删除、查找、输出四种操作*/
#include<stdio.h>
#include<malloc.h>
#define Maxsize 30
typedef char ElemType;
typedef struct{ //定义顺序表的数据类型,
ElemType data[Maxsize];
int length;
}SqList;
int CreateList(SqList *L,int n)
{
int i;
if(n<1||n>Maxsize)
{
return false;
}
printf("请输入按顺序输入26个字母%c: ",L->data);
for(i=0;i<n;i++)
{
scanf("%c",&L->data[i]);
L->length++;
}
return true;
}
void InitList (SqList *L) //初始化
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
bool ListInsert(SqList *L,int i,ElemType e) //插入
{
int j;
if(i<1||i>L->length+1)
{
return false;
}
for(j=L->length;j>i;j--)
{
L->data[j+1]=L->data[j]; //位置i之后的元素都往后移一位
}
L->data[i-1]=e;
return printf("%c",L->data[i-1]);
L->length++;
return true;
}
bool ListDelete(SqList *L,int i) //删除
{
int j;
if(i<1||i>L->length)
{
return false;
}
for(j=i;j!=L->length;j++)
{
L->data[j]=L->data[j+1];
}
L->length--;
return true;
}
bool LocateElem(SqList *L,ElemType e) //查找
{
int i,flag=0;
for(i=0;i<L->length;i++)
{
if(e==L->data[i])
{
flag=1;
}
}
if(flag==1)
{
return i+1;
}
}
int ListTraverse(SqList *L) //输出
{
int i;
for(i=0;i<L->length;i++)
{
return printf("%c",L->data[i]);
}
}
void DestroyList(SqList *L)
{
free(L);
}
int main()
{
int CreateList(SqList *L,int n);
void InitList (SqList *L);
bool ListInsert(SqList *L,int i,ElemType e);
bool ListDelete(SqList *L,int i);
bool LocateElem(SqList *L,ElemType e);
int ListTraverse(SqList *L);
void DestroyList(SqList *L);
SqList L;
int i;
char e,j;
CreateList(L,26);
InitList(L);
ListInsert(L,5,e);
ListDelete(L,7);
LocateElem(L,j);
ListTraverse(L);
DestroyList(L);
return 0;
} |