数据结构c语言实现顺序表基本操作

#include
#include
#define MAXSIZE 100
#define ElemType int

typedef struct{
    ElemType Data[MAXSIZE];
    int length;
}seqList;

void initList(seqList *L){
L->length = 0;
} 

int insertList(seqList *L,int pos,ElemType ele){
    int i;
    if(pos<0||pos>=MAXSIZE){
        return 0;
    }
    else{
        for(i=L->length;i>=pos;i--){
            L->Data[i+1]=L->Data[i];
        }
        L->Data[pos] = ele;
        L->length++;
      return 1;
  }
}
int getElem(seqList L,int pos){
    int i;
    if(pos<0||pos>=L.length){
        return 0;
    }
    else{
        return L.Data[pos];
    }
}
int DeleteList(seqList *L,int pos){
    int i;
    if(pos<0||pos>=MAXSIZE){
        return 0;
    }
    else{
        for(i=pos;ilength;i++){
            L->Data[i-1] = L->Data[i];
        }
        L->length--;
        return 1;
    }
}
int isEmpty(seqList L){
    if(L.length==0){
        return 1;
    }
    else{
        return 0;
    }
}
int LocateElem(seqList *L,ElemType ele){
    int i;
    for(i=0;ilength;i++){
        if(L->Data[i]==ele)
            return i;
    }
    return -1;
}
int printList(seqList *L){
    int i;
    for(i=0;ilength;i++){
        printf("%d ",L->Data[i]);
    }
}
int main(){
    seqList L;
    char c;
    printf("===========请输入您的选择=============\n");
    printf("1.初始化顺序表\t\t 2.添加元素\t\t 3.删除元素\n");
    printf("4.打印元素\t\t 5.查询元素位置\t\t #.退出\n");
    while(scanf("%c",&c)!='#'){
        getchar();
        if(c=='1'){
            initList(&L);
            printf("初始化成功\n"); 
        }
        else if(c=='2'){
            int ele;
            char d;
            int i=0;
            printf("请输入您要添加的元素:\n");
            scanf("%d",&ele);
            insertList(&L,i,ele);
            i++;
            printf("是否停止添加元素n/y:\n");
            getchar();
            d=getchar();
            while(d=='n'){              
                scanf("%d",&ele);
                getchar();
                insertList(&L,i,ele);
                i++;
                printf("是否停止添加元素n/y:\n");
                d=getchar();
            }
            getchar();
        }
        else if(c=='3'){
            int pos;
            char d;
            printf("请输入您要删除的位置:\n");
            scanf("%d",&pos);
            DeleteList(&L,pos);
            printf("是否停止删除N/Y:\n");
            getchar();
            while(scanf("%c",&d)=='n'){
                getchar();
                scanf("%d",&pos);
                DeleteList(&L,pos);
                printf("是否停止删除n/y:\n");             
            }
            getchar();
            printf("请输入您的选择:\n");
        }
        else if(c=='4'){
            printList(&L);
            getchar();
            }
        else if(c=='5'){
            int quele;
        printf("请输入您要查询的元素:\n");
        scanf("%d",&quele);
        int a = LocateElem(&L,quele);
        printf("%d\n",a);
        getchar();
    }
    else if(c=='#'){
        break;
    }
    else{
        printf("请输入合法的选择:\n");
        getchar();
    }
} 
}

你可能感兴趣的:(数据结构c语言实现顺序表基本操作)