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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值