您的位置:首页 > 其它

线性表各种操作的实现

2015-09-29 12:08 295 查看
#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
=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
);

}

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: