线性表的顺序静态存储--C语言实现

线性表的结构体定义了一个存放元素的定长数组,一个定义了线性表的长度。

Operations

  • initList
  • listEmpty
  • clearList
  • listLength
  • insertElem
  • addElem
  • deleteElem
  • getElem
  • locateElem
  • printList
#include

#define MAXSIZE 20

#define OK 1
#define ERROR -1
#define TRUE 1
#define FALSE 0

#define ElemType int

typedef struct{
	ElemType data[MAXSIZE];
	int length;
}SqList;

int initList(SqList *L);
int listEmpty(SqList L);
int clearList(SqList *L);
int listLength(SqList L);
int insertElem(SqList *L,int i,ElemType e);
int addElem(SqList *L,ElemType e);
int deleteElem(SqList *L,int i);
int getElem(SqList L,int i,ElemType *e);
int locateElem(SqList L,ElemType e);
int printList(SqList L);

SqList sqList;

int initList(SqList *L){
	int i=0;
	for(i=0;idata[i]=NULL;
	}
	L->length=0;
	return OK;
}

int listEmpty(SqList L){
	return L.length==0?TRUE:FALSE;
}

int clearList(SqList *L){
	int i=0;
	for(i=0;ilength;i++){
		L->data[i]=NULL;
	}
	L->length=0;
	return OK;
}

int listLength(SqList L){
	return L.length;
}

int insertElem(SqList *L,int i,ElemType	e){
	int length=L->length;
	if(length==0||length>=MAXSIZE || i<0 || i>=length){
		return ERROR;
	}
	L->length++;
	int j=0;
	for(j=L->length;j>i;j--){
		L->data[j]=L->data[j-1];
	}
	L->data[i]=e;
	return OK;
}

int deleteElem(SqList *L,int i){
	int length=L->length; 
	if(i>length-1||i<0||length==0){
		return ERROR;
	}
	int j;
	for(j=i;jlength;j++){
		L->data[j]=L->data[j+1];
	}
	L->length--;
	return OK;
}

int getElem(SqList L,int i,int *e){
	int length=L.length;
	if(length==0||i>length||i<0){
		return ERROR;
	}
	*e=L.data[i];
	return OK;
}

int locateElem(SqList L,ElemType e){
	int i;
	for(i=0;ilength;
	if(length>=MAXSIZE){
		return ERROR;
	}
	L->length++;
	L->data[L->length-1]=e;
	return OK;
}

int main(){
	initList(&sqList);
	int i;
	for(i=0;i<10;i++){
		addElem(&sqList,i);
	}
	insertElem(&sqList,4,11);
	deleteElem(&sqList,5);
	printList(sqList);
	i=locateElem(sqList,12);
	printf("%d\n",i);
	getElem(sqList,5,&i);
	printf("%d\n",i);
	return 0;
}

 

 

 

 

 

你可能感兴趣的:(数据结构)