作者在 2011-11-10 21:58:18 发布以下内容
在顺序表的基本运算上设计一个程序完成:
1.初始化顺序表L
2依次采用尾插法插入a,b,c,d,e元素
3输出顺序表L
4输出顺序表L的长度
5判断顺序表是否为空
6输出的第三个元素
7输出‘a'的位置
8在第四个元素位置上插入'f'
9输出顺序表L
10删除L的第三个元素
11输出顺序表L
12释放顺序表L
等一系列功能。
#include<stdio.h>
#include<malloc.h>
#include <string.h>
#include<stdio.h>
#include<malloc.h>
#include <string.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
{
ElemType data[MaxSize];
int length;
}SqList;
void CreateList(SqList* &L,ElemType a[],int n) void CreateList(SqList*&L,ElemTypea[],int n)
{
int i;
{
int i;
L=(SqList *)malloc(sizeof(SqList));
for(i=0;i<n;i++)
L->data[i]=a[i];
L->data[i]=a[i];
L->length=i;
}
}
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
{
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
int ListInsert(SqList *&L,int i,ElemType e)
{
int j;
if(i<1||i>L->Length+1)
return 0;
i--;
for(j=L->length;j>i;j--)
L->data[j]=L->data[j-1];
{
int j;
if(i<1||i>L->Length+1)
return 0;
i--;
for(j=L->length;j>i;j--)
L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++;
return 1;
}
}
void DispList(SqList*L)
{
int i;
{
int i;
for(i=0;i<L->length;i++)
printf("%c",L->data[i]);
printf("\n");
}
printf("%c",L->data[i]);
printf("\n");
}
int ListLength(SqList *L)
{
return(L->length);
}
{
return(L->length);
}
int ListEmpty(SqList *L)
{
return(L->length==0);
}
{
return(L->length==0);
}
int ListDelete(SqList *&L,int i,ElemType &e)
{ int j;
if(i<1||i>L->length)
return 0;
i--;
e=L->data[j];
for (j=i;j<L->length-1;j++)
L->data[j]=L->data[j+1];
L->length--;
return 1;
}
{ int j;
if(i<1||i>L->length)
return 0;
i--;
e=L->data[j];
for (j=i;j<L->length-1;j++)
L->data[j]=L->data[j+1];
L->length--;
return 1;
}
int GetElem(SqList*L,int i,ElemType&e)
{
if(i<1||i>L->length)
return 0;
{
if(i<1||i>L->length)
return 0;
e=L->data[i-1];
return 1;
}
}
int LocateElem(SqList *L, ElemType e)
{
int i=0;
while (i<L->length && L->elem[i]!=e) i++;
if (i>=L->length)
return 0;
else
return i+1;
}
{
int i=0;
while (i<L->length && L->elem[i]!=e) i++;
if (i>=L->length)
return 0;
else
return i+1;
}
void DestroyList(SqList *L)
{
free(L);
}
{
free(L);
}
void main()
{
SqList*L=NULL;
ElemType str[MaxSize]="abcdefghijk"
CreateList(L,str,strlen(str));
InitList(L);
ListInsert(L,i, a);
ListInsert(L,i, b);
ListInsert(L,i,c);
ListInsert(L,i, d);
ListInsert(L,i, e);
DispList(L);
ListLength(L);
ListEmpty(L);
GetElem(L,3,e);
LocateElem(L,a);
ListInsert(L,4,f);
DispList(L);
ListDelete(L,3,e);
DispList(L);
DestroyList(L);
}
{
SqList*L=NULL;
ElemType str[MaxSize]="abcdefghijk"
CreateList(L,str,strlen(str));
InitList(L);
ListInsert(L,i, a);
ListInsert(L,i, b);
ListInsert(L,i,c);
ListInsert(L,i, d);
ListInsert(L,i, e);
DispList(L);
ListLength(L);
ListEmpty(L);
GetElem(L,3,e);
LocateElem(L,a);
ListInsert(L,4,f);
DispList(L);
ListDelete(L,3,e);
DispList(L);
DestroyList(L);
}