C语言实现顺序表的基本操作

实现了使用C语言完成顺序表的插入,排序(冒泡排序),删除。

#define maxSize 100
//顺序表定义
typedef struct {
    int data[maxSize];
    int length;
}Sqlist;
int main(){
    //顺序表基本操作
    void CreatSqlist(Sqlist *L);
    void OutputSqlist(Sqlist *L);
    void insertElem(Sqlist *L,int x);\
    void Bubble(Sqlist *L);

    Sqlist L;
    CreatSqlist(&L);
    Bubble(&L);
    printf("输出链表:\n");
    OutputSqlist(&L);
    insertElem(&L,10);
    printf("输出链表:\n");
    OutputSqlist(&L);

    return 0;
}
//顺序表基本操作
//创建顺序表
void CreatSqlist(Sqlist *L){
    int i = 0;
    L -> length = 0;
    printf("请输入顺序表数据:\n");
    for (i = 0;i < 5; i++){
        scanf("%d",&L -> data[i]);
        L -> length++;
    }
}
//输出顺序表
void OutputSqlist(Sqlist *L){
    for(int i = 0;i <L->length;i++){
        printf("%d ",L -> data[i]);
    }
    printf("\n");
}
//顺序表插入,按顺序插入
int findElem(Sqlist L,int x){
    int i = 0;
    for (i = 0;i < L.length;i++){
        if(x < L.data[i]){
            return i;
        }
    }
    return i;
}
void insertElem(Sqlist *L,int x){
    int p,i;
    p = findElem(*L,x);
    for(i = L->length - 1;i >= p;i--){
        L->data[i+1] = L->data[i];
    }
    L->data[p] = x;
    (L->length)++;
}
//删除元素
int deleteElem(Sqlist *L,int p,int *e){
    int i;
    if(p < 0 || p> L->length-1){
        return 0;
    }
    e = L->data[p];
    for(i = p;i < L->length-1;i++){
        L->data[p] = L->data[p+1];
    }
    L->length--;
    return 1;
}
//冒泡排序
void Bubble(Sqlist *L){
    for(int i =0;i < L -> length-1;i++){
        for(int j = 0;j < L->length - i - 1;j++){
            int temp;
            if(L -> data[j] > L -> data[j+1]){
                temp = L -> data[j];
                L -> data[j] = L -> data[j+1];
                L -> data[j+1] = temp;
            }
        }
    }
}

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页