设顺序表中的数据元素递增有序,试着写一算法,将x插入到顺序表上的适当位置上,以保持该表的有序性。
原创,转载请注明出处。https://www.cnblogs.com/yangf428/p/11254370.html
天勤例题【2-1】:
设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性
先建立一个待插入的结点,然后依次与与链表中的各结点的数据域比较大小,找到插入该结点的位置,最后插入该结点。
算法如下:
//设顺序表中的数据元素递增有序,
//试着写一算法,将x插入到顺序表上的适当位置上,
//以保持该表的有序性。
#include<stdio.h>
#include<cstring>
#define MaxSize 200
#define ElemType int
#define Status int
#define OK 1
#define ERROR 0
using namespace std; typedef struct
{
ElemType data[MaxSize];
int length;
} SqList; //定义结构体 Status initList(SqList *L)
{
L->length = ;
return ;
}//初始化顺序表 SqList createList(SqList * L, int n)
{
int startNumber, step;
printf("请输入初始值和步长:\n");
scanf("%d %d", &startNumber, &step);
for(int i=; i<n; i++)
{
L->data[i] = startNumber + (i)*step;
}
L->length = n;
return *L;
}//建造顺序表 void showList(SqList *L)
{
for(int i=; i<=L->length-; i++)
{
printf("%d ", L->data[i]);
}
printf("\n\n\n");
}//屏幕输出顺序表 Status locateList(SqList *L, ElemType e)
{
if(e <= L->data[])
return ;
if(e >= L->data[L->length - ])
return L->length;
else
{
for(int i=; i<L->length-; i++)
{
if(e > L->data[i] && e <= L->data[i+])
{
return i+;
}
}
}
}//定位某元素在数据表中的位置 Status inorderList(SqList *L, ElemType location, ElemType e)
{
for(int i = L->length-; i >= location; i--)
{
L->data[i+] = L->data[i];
}
L->data[location] = e;
L->length ++;
return OK;
}//插入指定位置的数据 int main()
{ SqList L;
initList(&L);
int n;
printf("输入顺序表的元素个数:\n");
scanf("%d",&n);
createList(&L,n);
showList(&L);
while(true){
printf("请输入插入的元素:\n");
int InputNumber;
scanf("%d",&InputNumber);
int Location=locateList(&L,InputNumber);
inorderList(&L, Location, InputNumber);
showList(&L);
} return ;
}
执行结果:

注意:一定要注意当值小于第一个、大于最后一个,还有和某个数相同的各种类似特殊情况,测试一定要全面!!
这个算法过一段时间我会更一个更简洁的。
设顺序表中的数据元素递增有序,试着写一算法,将x插入到顺序表上的适当位置上,以保持该表的有序性。的更多相关文章
- php实例根据ID删除mysql表中的数据
在动态网站开发中,我们经常要根据ID删除表中的数据,例如用户删除帖子,就需要根据ID删除帖子.本文章向大家介绍php根据ID删除表中数据的实例,需要的朋友可以参考一下本文章的实例. php实例根据ID ...
- ca12a_c++顺序容器的操作5_访问容器中的数据元素
ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at( ...
- (笔记)Mysql命令update set:修改表中的数据
update set命令用来修改表中的数据. update set命令格式:update 表名 set 字段=新值,… where 条件; 举例如下:mysql> update MyClass ...
- (最全最灵活地)利用Jxl工具包实现Excel表的内容读取 、写入(可向已有表中追加数据)
1.引子 (1)读取 Jxl工具比较强大,可以方便地实现Excel表的读取和写入.另一款工具Poi也具有相似的功能,并且功能更多,运用也相对复杂.Poi读取Excel表内容时,需要先判断其内容格式,如 ...
- DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)
/// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...
- SSAS中事实表中的数据如果因为一对多或多对多关系复制了多份,在维度上聚合的时候还是只算一份
SSAS事实表中的数据,有时候会因为一对多或多对多关系发生复制变成多份,如下图所示: 图1 我们可以从上面图片中看到,在这个例子中,有三个事实表Fact_People_Money(此表用字段Money ...
- SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
--更新字段为随机时间 86400秒=1天 UPDATE dl_robot ), ,GETDATE()) ) SQL存在一个表而不在另一个表中的数据 方法一 使用 not in ,容易理解,效 ...
- delete表1条件是另一个表中的数据,多表连接删除(转)
DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 from t1 where 条件 3. ...
- mysql 数据库怎样快速的复制表以及表中的数据
1.copy表结构 SHOW CREATE TABLE runoob_tbl:(选择你要复制的表),copy 它的创建语句,执行即可创建表结构相同的表了,记得改名称哦. 2.copy表数据 选择你要插 ...
随机推荐
- 【导出导入】IMPDP table_exists_action 参数的应用
转自:https://yq.aliyun.com/articles/29337 当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:a.忽略(SKIP,默认行为 ...
- 一步一步教你实现iOS音频频谱动画(二)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第一篇:一步一步教你实现iOS音频频谱动画(一) 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲 ...
- 升级xcode11&ios13的坑
Swift Packages 目前Pod跟SPM的兼容还没做好,配置好SPM后,Pod不能进行正常更新,先配置好Pod再集成SPM则没有问题 Pod以后的更新可能会解决这个问题,也会有越来越多的库支持 ...
- python 解析Hdfs上的数据文件
python想直接读取hadoop上的文件内容,一番操作,头发掉了几根,也没能解析出来parquet文件类型的文件. 本博文简单讲解一下TEXTFILE文件格式的解析: 需要安装模块hdfs from ...
- MySQL之Text Protocol
1)[01]COM_QUIT 告诉服务器,客户端想要关闭连接 返回:或者关闭一个连接或者一个OK_Packet 有效负载: 1 [01]COM_QUIT 字段: command(1)--0x01 CO ...
- Til the Cows Come Home(Dijkstra)
Dijkstra (迪杰斯特拉)最短路算法,算是模板 POJ - 2387 #include<iostream> #include<algorithm> #include< ...
- web页面长时间未操作自动退出登录
var lastTime = new Date().getTime(); var currentTime = new Date().getTime(); * * ; //设置超时时间: 10分 $(f ...
- [flask初学问题]RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/
看B站视频学习flask-SQLalchemy时,报错RuntimeError: No application found. Either work inside a view function or ...
- Python中的字典分组函数(groupby,itertools)
from operator import itemgetter # itemgetter用来去dict中的key,省去了使用lambda函数 from itertools import groupby ...
- hudson 使用节点打包出现ClassNotFoundException: org.jvnet.hudson.maven3.agent.Maven3Main 错误
java.lang.NoClassDefFoundError: org/jvnet/hudson/maven3/agent/Maven3Main Caused by: java.lang.ClassN ...