(线性表)设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。

[算法的基本思想]

建立顺序表,在表中从后往前查找要插入的元素的位置,直到找到第一个比X小的数,并从表的最后一元素依次后移,把插入元素插入查找位置

源代码:

#include<stdio.h>#define LIST_INIT_SIZE 100typedef int ElemType;typedef struct{ElemType elem[LIST_INIT_SIZE];int next;}SqList;void Initlist(SqList *L){L->next=-1;}void ReadList(SqList *L,int n){int i;for(i=0;i<n;i++)scanf("%d",&(L->elem[i]));L->next=L->next+n;}int LenList(SqList *L){int Len;Len=L->next+1;return Len;}  int PositionList(SqList *L,int X){int j;for(j=0;j<=L->next;j++)if(X<L->elem[j])return j+1;return (L->next+1);}int InsList(SqList *L,int i,int e){int k;if((i<1)||(i>L->next+2)){printf("The position is wrong!");return(0);}if(L->next>=LIST_INIT_SIZE-1){printf("The list is full!");return(0);}for(k=L->next;k>=i-1;k--)L->elem[k+1]=L->elem[k];L->elem[i-1]=e;L->next++;return(1);}int WriteList(SqList *L){int i;for(i=0;i<=L->next;i++)printf("%d,",L->elem[i]);return(L->elem[i]);}int main(){int s,c;SqList L;Initlist(&L);printf("要输入多少个数:");scanf("%d",&s);printf("输入数字 :");ReadList(&L,s);LenList(&L);printf("请输入要插入的数字:");scanf("%d",&c);printf("排列好的顺序:");InsList(&L,PositionList(&L,c),c);WriteList(&L);printf("\n");getchar();}

结果执行如下:

(线性表)设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。相关推荐

  1. CQUPT数据结构作业2.1:设有一如下定义的SqList类型的顺序表,将其中的数据元素按递增顺序排列.试写一算法,将x插入到顺序表的适当位置,以保持该表的有序性

    加粗样式 2.1设有一如下定义的SqList类型的顺序表,将其中的数据元素按递增顺序排列.试写一算法,将x插入到顺序表的适当位置,以保持该表的有序性; typedef struct{int *elem ...

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

    题目要求:设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性. 代码实现: void Insert(SqList *va,int x) {int i;if( ...

  3. 设顺序表va中的数据元素递增有序。先实现将x插入到顺序表的适当位置上,保存该表的有序性。

    设顺序表va中的数据元素递增有序.先实现将x插入 到顺序表的适当位置上,保存该表的有序性. /* 设顺序表va中的数据元素递增有序.先实现将x插入 到顺序表的适当位置上,保存该表的有序性. */ #d ...

  4. 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1

    已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA=(3,5,8,11) LB=(2,6,8,9,1 ...

  5. 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。

    数据结构(C语言版)严蔚敏 吴伟民 算法2.2 已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列.例如,设 LA= ...

  6. c语言两个线性表la lb,有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合...

    <有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员现要求一个新的集合>由会员分享,可在线阅读,更多相关<有两个集合用两个线性表LA和LB表示即线性表中的数据元 ...

  7. C++ 单链表基本操作分析与实现 链表   链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结

    C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以 ...

  8. java 中的数据元素的定义_Java数据结构和算法的基础概念

    一.基本的概念 1.数据            是客观描述事物的符号,是计算机中操作的对象,是能被计算机识别.并输入给计算机处理的集合 2.数据元素        是组成数据的,有一定意义的基本单位. ...

  9. 设置顺序表L是个递增的有序表,试写一算法将number插入L中,并使L任是一个有序表。

    一.实现算法如下: /*有序顺序表的插入*/ void InsertSqlist(Sqlist *L,Elemtype number) {int i;assert(L->length < ...

最新文章

  1. ROS笔记(5) ROS架构
  2. python识别pdf文字_Python 神工具包!翻译、文字识别、语音转文字统统搞定
  3. pyqt,Qt Designer 界面布局子窗口可移动
  4. [POJ3096]Surprising Strings
  5. 为什么要学习Linux操作系统?
  6. 通信电子线路实验-调幅模块仿真(发送与接收)
  7. 移动硬盘坏点测试软件,移动硬盘坏道检测修复工具(硬盘坏道检测助手)V1.1 正式版...
  8. 基于jsp的学生培训管理系统
  9. 每日一言 api 接口
  10. C/C++ DLL封装及调用
  11. Unity3d模型导入都需要注意哪些事项?
  12. 如何摆脱NAS中的振动和噪音
  13. 图案设计灵感怎么写_优秀Logo的设计灵感,从何而来?
  14. Windows 7 下载
  15. 腾讯视频qlv获取办法
  16. 浅谈防火墙、IDS和IPS之间的区别
  17. Python常用的12个GUI框架
  18. 阿里云ECS搭建frp服务器实现黑群晖 Nas 内网穿透
  19. redis:01入门指南以及在springboot中使用redis
  20. Maven的下载与使用

热门文章

  1. 2017年计算机考研408操作系统真题(客观题)
  2. html加入图片如何自动平铺,css怎么让图片平铺?
  3. 原链YCC落地应用之仓单金融
  4. 苹果笔记本 macbook 阉割后 全格式化后 重新装系统(无mac系统 装win系统解决方案)自己苹果笔记本测试
  5. Tomcat7 管理员配置
  6. 优酷播放黑科技 | 自由视角技术的全链路策略与落地实践
  7. IE 下JS上传文件时出现“拒绝访问”的解决方案
  8. 【原创】Wiki报错:“该文件的加载时间比平时要长。请稍等片刻……”
  9. 洛谷 P4324 [JSOI2016]扭动的回文串 manacher+字符串hash
  10. linux里怎么看终端类型,如何区分Linux下的几种终端类型:tty、pty和pts