线性表之顺序表插入元素

问:设计一个算法,将X插入到一个有序的线性表的适当位置上,并保持线性表的有序性。
答:通过比较在顺序表L中找到插入X的位置i,将该位置以及后面的元素后移一个位置,将X插入到位置i中,最后将L的长度增1。

#include <malloc.h>    //包含头文件

#include <iostream>

using namespace std;

typedef struct         //定义顺序表
 
{
 int data[5];

 int lenght;

}SqList;
 
void Insert(SqList &L)//具体插入算法
 
{
 int i=0,j;

 int x=5;

 while (i<L.lenght&&L.data[i]<x) i++;  //找到插入点
 
 for (j=L.lenght-1;j>=i;j--)//依次后移
  
      L.data[j+1]=L.data[j];

 L.data[i]=x;

 L.lenght++;

}

int main()

{
 int a[5]={0,2,4,6,8};

 int i;

 SqList * L;
 
 L=(SqList *)malloc(sizeof(SqList));

 for(i=0;i<5;i++)

 {
  L->data[i]=a[i];

 }

 L->lenght=i;

    Insert(*L);

    cout<<L->data[3]<<endl;

 return 0;

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值