• 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。


    1. 题目要求:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。

    2. 代码实现:

      void Insert(SqList *va,int x)
      {
          int i;
          if(va->length+1>MAXSIZE)
          {
              printf("存储空间已满");
              return;
          }
          for(i=va->length-1;va->data[i]>x&&i>=0;i--)
          {
              va->data[i+1]=va->data[i];
          }
          va->data[i+1]=x;
          va->length++;
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
    3. 完整程序:

      #include 
      #define MAXSIZE 100  
      typedef struct
      {
      	int data[MAXSIZE];
      	int length;
      }SqList;
      void Insert(SqList *va,int x)
      {
          int i;
          if(va->length+1>MAXSIZE)
          {
              printf("存储空间已满");
              return;
          }
          for(i=va->length-1;va->data[i]>x&&i>=0;i--)
          {
              va->data[i+1]=va->data[i];
          }
          va->data[i+1]=x;
          va->length++;
      }
      int main()
      {
      	int m,x;
      	SqList va;
      	printf("请输入线性表元素个数m:");
      	scanf("%d",&m);
      	printf("请输入线性表数据:");
      	for(int i=0;i<m;i++)
      		scanf("%d",&va.data[i]);
      	va.length=m;
      	printf("请输入要插入的元素x:");
      	scanf("%d",&x);
      	Insert(&va,x);
      	printf("插入x后的新线性表为:");
      	for(int t=0;t<va.length;t++)
          	printf("%d ",va.data[t]);
      } 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
    4. 运行结果:

      请输入线性表元素个数m:4
      请输入线性表数据:1 5 9 16
      请输入要插入的元素x:7
      插入x后的新线性表为:1 5 7 9 16
      
      • 1
      • 2
      • 3
      • 4

      -------------------------分割线-------------------------------
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。
      用于处理CSDN的质量检测(文字不能低于10行)。

  • 相关阅读:
    Vue Router完整的导航解析流程
    一文看懂推荐系统:排序02:Multi-gate Mixture-of-Experts (MMoE)
    JDK17 对es带来的性能提升基准测试报告
    智能筛选超时物流订单的技巧详细揭秘
    asp.net core mvc区域路由
    一个线程的生命周期有哪几种状态?它们之间如何流转的?
    Docker搭建MySQL主从模式案例
    股价下跌18%后,满帮集团(YMM)的财务业绩正在加速放缓
    vue项目中引入element-plus
    分布式机器学习:PageRank算法的并行化实现(PySpark)
  • 原文地址:https://blog.csdn.net/WHISTLE_ZXL/article/details/126208259