线性表各种操作的实现

#include<stdio.h>
#include<string.h>


#define MAXSIZE 100


typedef struct {
int ListData[MAXSIZE];
int length; 
}SeqList;
 
void SeqListInit(SeqList* sl); //初始化线性表 
int SeqListLength(SeqList* sl); //返回线性表长度 
int SeqListAdd(SeqList* sl, int data);  //添加元素 
int SeqListInsert(SeqList* sl,int data, int n); //插入元素
int SeqListDelete(SeqList* sl, int n); //删除指定位置的元素 
int* SeqListFindByNum(SeqList* sl, int n); //根据指定序号返回元素
int SeqListAll(SeqList* sl); //遍历线性表


void SeqListInit(SeqList* sl){
sl->length=0;



int SeqListLength(SeqList* sl){
return (sl->length); 
}


int SeqListAdd(SeqList* sl, int data){
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
sl->ListData[sl->length]=data;
++(sl->length);
return 1;



int SeqListInsert(SeqList* sl,int data, int n){
int i;
if(sl->length>=MAXSIZE){
printf("线性表已满\n");
return 0;
}
if(n>sl->length||n<0){
printf("插入位置错误\n");
return 0;
}

for(i=(sl->length-1);i>=n;--i){
sl->ListData[i+1]=sl->ListData[i];
}
sl->ListData[n]=data;
++(sl->length);
return 1;
}


int SeqListDelete(SeqList* sl, int n){
int i;
if(n>sl->length||n<0){
printf("删除位置错误\n");
return 0;
}


for(i=n;i<sl->length;++i){
sl->ListData[i]=sl->ListData[i+1];
}
--(sl->length);
return 1;
}


int* SeqListFindByNum(SeqList* sl, int n){
if(n>sl->length||n<0){
printf("位置错误\n");
return 0;
}
return &(sl->ListData[n]);
}


int SeqListAll(SeqList* sl){
int i;
for(i=0;i<sl->length;++i){
printf("%d\n",sl->ListData[i]);
}
}


int main()
{
SeqList sl;
SeqListInit(&sl);
SeqListAdd(&sl,1);
SeqListAdd(&sl,2);
SeqListAll(&sl);
}

你可能感兴趣的:(线性表各种操作的实现)