c语言实现顺序表的基本功能
1.顺序表的描述
#define maxsize 30
typedef int DataType;
typedef struct{
int length;
DataType data[maxsize];
}Sqlist;
2.初始化
void createList(Sqlist *L){
int i;
printf("请输入顺序表初始化长度:");
scanf("%d",&L->length);
for(i=0;i<L->length;i++){
scanf("%d",&L->data[i]);
}
printf("初始化成功!\n");
}
3.遍历打印
void printList(Sqlist *L){
for(int i=0;i<L->length;i++){
printf("%d",L->data[i]);
}
}
4.取表元
DataType getList(Sqlist *L,int loc){
return L->data[loc-1];
}
5.插入
int insertList(Sqlist *L,int loc,DataType value){
if(L->length==maxsize){
printf("表满,无法插入!\n");
return -1;
}
if(loc<1||loc>L->length){
printf("插入位置不合法!");
return -1;
}
for(int i=L->length-1;i>=loc-1;i++){
L->data[i+1]=L->data[i];
}
L->length++;
return 1;
}
6.删除
int deleteList(Sqlist *L,int loc){
if(L->length==0){
printf("表空,无法删除!");
return -1;
}
if(loc<1||loc>L->length){
prinft("删除位置不合法!");
return -1;
}
for(int i=loc;i<L->length;i++){
L->data[i-1] = L->length[i];
}
L->length--;
return 1;
}
7.按值查找
int searchList(Sqlist *L,DataType value){//返回下标
for(int i=0;i<L->length;i++){
if(L->data[i]==value){
retrun i;
break;
}
}
if(i==L->length){
printf("未找到!");
return -1;
}
}
8.求表长
int lengthList(Sqlist *L){
return L->length;
}
9.主函数
void main(){
Sqlist L;
createList(&L);
//test
}