|
发表于 2020-3-22 13:59:29
|
显示全部楼层
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10;
typedef struct {
int a;
}elemType;
typedef struct {
elemType *elem;
int length;
int Size;
}SqlList;
bool InitList(SqlList *L){
L->elem=(elemType*)malloc(sizeof(elemType));
if(!L->elem){
return false;
}
L->length=0;
L->Size=MaxSize;
return true;
}
bool insertList(SqlList *L,int i,elemType e){
if(i<1||i>L->length+1){
return false;
}
if(i==L->length+1||L->length==0){
L->elem[i-1]=e;
L->length++;
return true;
}
for(int j=L->length;j>=i;j--){
L->elem[j]=L->elem[j-1];
}
L->elem[i-1]=e;
L->length++;
return true;
}
bool DeleteList(SqlList *L,int i){
if(i<1||i>L->length){
return false;
}
if(i==L->length){
L->length--;
return true;
}
for(int j=i;j<L->length;j++){
L->elem[j-1]=L->elem[j];
}
L->length--;
return true;
}
void ListAll(SqlList L){
if(!L.length){
printf("没值");
}
int n=L.length;
for(int i=0;i<n;i++){
printf("%d ",L.elem[i]);
}
printf("\n");
}
int GetArea(SqlList L){
return L.Size-L.length;
}
int main(){
int a[10];
SqlList L;
elemType e;
if(!InitList(&L)){
printf("失败");
}
for(int i=0;i<5;i++){
scanf("%d",&a[i]);
e.a=a[i];
if(!insertList( &L,i+1, e)){
return 0;
}
}
ListAll(L);
printf("%d\n",GetArea(L));
e.a=0;
if(!insertList( &L,3,e)){
return 0;
}
ListAll(L);
printf("%d\n",GetArea(L));
if(!insertList(&L,11,e)){
printf("超出范围\n");
}
if(!DeleteList( &L, 5)){
printf("不在范围内");
}
ListAll(L);
printf("%d\n",GetArea(L));
return 0;
} |
|