C语言提高-第26/27讲: 实现线性表基本操作的函数/编写查找和排序函数

本文探讨了C语言中线性表的基本操作,包括删除、插入和合并等,并介绍了如何编写查找和选择排序函数。在删除操作中,通过创建新数组来实现;插入操作则涉及元素的倒序腾位和赋值。对于排序,文章对比了冒泡法与选择法的区别,指出选择法在每趟排序中确定最小值置于最前。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性表的基本操作有:删除、插入、合并、查找、修改...

下面根据函数的模块化,给出上述操作及选择排序的函数:

//删除
int deleteData(int *p,int len,int loc){
    int i=loc;                  //i从loc开始往前递增
    while(i<len-1){             //要删除的第i个及之后的单元有变化
        *(p+i)=*(p+i+1);        //第i个单元的值为第i+1的
        i++;
    }
    len--;
    return len;                 //返回值为新数组长度
}

//插入
int insertData(int *p,int len,int loc,int v){
    int i=len;                  //i从len开始往前递减
    while(i>loc){               //要增加的第i个及之后的单元有变化
        *(p+i)=*(p+i-1);        //向后移位(倒序腾位)
        i--;                  
    }  
    *(p+i)=v;                   //修改loc单元的值
    len++;
    return len;                 //返回值为新数组长度 
}

//合并
int mergeData(int *p1,int l1,int *p2,int l2,int *p3){
    int i=0,j=0,k=0;            //分别是数组1、数组2,新数组的序号
    while(i<l1&&j<l2)           //2组数都没有比完
        if(*(p1+i)<*(p2+j)){
            *(p3+k)=*(p1+i);    //把较小的赋到新的数组单元
            k++;
            i++;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值