顺序表递增有序,插入元素x后仍递增有序

/*思想:
1)先找到x元素的插入位置(顺序表从左到右依次比较,若A元素大于x元素,那么x元素插入的位置就是A元素所在的位置) 
2)将A元素所在的位置的元素以及它之后的所有元素后移一个位置(因为是后移,为了不覆盖元素我们需要将这些元素从右到左开始依次后移)(从左到右后移的话会将元素覆盖,可以自行尝试)(后移后产生一个空位置) 
3)将 x元素插入到A元素初始的位置 (即 2)中的空位置) 
4)将顺序表的长度加1(不要忘记)
*/ 


typedef struct
{//顺序表的结构体
    int data[maxsize];
    int length; 
}Sqlist;
void find(Sqlist L, int x)
{//找到x元素的插入位置 
    for(i=0; i<L.length; i++)
   {
      if(L.data[i]>x)
      {
         break;
      }
   }
  return i;
}
void insert(Sqlist &L, int x)
{//后移及插入 ,因为顺序表要改变,所以记得加上&
    int i,j;
    j=find(L,n);
    for(i=L.length-1; i>=j; i--)
    {
        L.data[i+1]=L.data[i];
    }
    L.data[j]=x;
    L.length++;
    
 } 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值