***main函数中***
#include <stdio.h>
#include "list.h"
int main(){
int i,a,s;
ElemType e;
SqList sqlist;
SqList *L=&sqlist;
int t=InitList(L);
if(t==OK){
printf("%d %d\n",L->length,L->listsize);
}
ValueList(L);
int ListLength(SqList *L);
printf("%d\n",L->length);
int m=IsEmpty(L);
if(m==OK)
printf("表为空\n");
else
printf("表不为空\n");
printf("你想找到第几个元素\n");
scanf("%d",&i);
GetElem(L,i,&e);
printf("%d\n",e);
printf("请输入你想查找的元素,返回他的位置\n");
scanf("%d",&e);
s=LocateELem(L,e);
printf("%d\n",s);
printf("请输入你要插入的位置,和要插入的元素\n");
scanf("%d %d",&i,&e);
ListInsert(L,i,e);
for(i=0;i<L->length;i++){
printf("%d ",L->elem[i]);
}
printf("请输入要删除的元素的位置\n");
scanf("%d",&i);
ListDelete(L,i,&e);
for(i=0;i<L->length;i++){
printf("%d ",L->elem[i]);
}
printf("删除的数为%d\n",e);
return 0 ;
}
***执行函数***
#include <stdio.h>
#include "list.h"
Status InitList (SqList *L)
{
L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(L->elem==NULL){
return ERROR;
}
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
Status ValueList(SqList *L){
int i,j;
printf("请输入线性表表单个数:");
scanf("%d",&i);
if(i>L->listsize)
{while(1)
{if(i > L->listsize){
L->elem = (ElemType *)realloc(L->elem,LIST_INIT_SIZE*sizeof(ElemType));
L->listsize +=LIST_INIT_SIZE;}
else break;}}
for(j = 0 ;j < i; j++)
scanf("%d",&L->elem[j]);
L->length = i;
printf("赋值成功!!!\n");
return OK;
}
int ListLength(SqList *L){
return L->length;
}
int IsEmpty(SqList *L){
if(L->length!=0){
return ERROR;
}
else {
return OK;
}
}
int GetElem(SqList *L,int i,ElemType *e){
if(i < 0 || i >L->length || L->length == 0)
return ERROR;
*e=L->elem[i-1];
}
int LocateELem(SqList *L,ElemType e){
int i,s;
for(i=1;i<=L->length;i++){
if(L->elem[i]==e){
s=i+1;
break;}}
return s;
}
Status ListInsert(SqList *L,int i,ElemType e){
int j;
for(j=L->length;j>=i;j--){
L->elem[j+1]=L->elem[j];
}
L->elem[i]=e;
L->length++;
return OK;
}
Status ListDelete(SqList *L,int i,ElemType *e){
int j;
*e=L->elem[i-1];
for(j=i;j<L->length;j++){
L->elem[j-1]=L->elem[j];
}
L->length--;
return OK;
}
#ifndef STATUS_H
#define STATUS_H
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int ElemType;
typedef int Status;
#endif
***函数声明***
#ifndef LIST_H
#define LIST_H
#include "status.h"
#define MAXSIZE 5
#define LIST_INIT_SIZE 100
typedef struct {
ElemType *elem;
int length;
int listsize;
}SqList;
Status InitList (SqList *L);
Status ValueList(SqList *L);
int ListLength(SqList *L);
int IsEmpty(SqList *L);
int GetElem(SqList *L,int i,ElemType *e);
int LocateELem(SqList *L,ElemType e);
Status ListInsert(SqList *L,int i,ElemType e);
Status ListDelete(SqList *L,int i,ElemType *e);
#endif