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

2023-11-05

设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性
先建立一个待插入的结点,然后依次与与链表中的各结点的数据域比较大小,找到插入该结点的位置,最后插入该结点。
算法如下:

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 20
#define OK 1
#define ERROR 0

typedef int ElemType;
typedef int Status;
typedef struct
{
    ElemType data[MAXSIZE];
    int Length;
}SqList;


Status InitList(SqList * L)   //初始化线性表
{
    L->Length=0;
    return OK;
}

SqList Create(SqList * L,ElemType Number)
{
    int StartNumber,Step;
    printf("请输入初始值和步长:\n");
    scanf("%d%d",&StartNumber,&Step);
    for(int i=0;i<Number;i++)
    {
        L->data[i]=StartNumber+(i)*Step;
    }
    L->Length=Number;
    return *L;
}

void print(SqList *L)
{
    for(int i=0;i<L->Length-1;i++)
    {
        printf("%d ,",L->data[i]);
    }
    printf("%d",L->data[L->Length-1]);
    printf("\n");
}



//判断插入位置
Status Locate(SqList *L,ElemType e)
{
    if(e<L->data[0])
    {
        return 0;
    }
    if(e>L->data[L->Length-1])
    {
        return L->Length;
    }
    else
    {
        for(int i=0;i<L->Length;i++)
        {

            if(e>=L->data[i] && e<L->data[i+1])
            {
                return i+1;
            }
        }
    }
}


//插入
Status InorderList(SqList *L,ElemType Location,ElemType e)
{
    for(int i=L->Length-1;i>=Location;i--)
    {
        L->data[i+1]=L->data[i];
    }
    L->data[Location]=e;
    L->Length++;
    return OK;
}



int main()
{
    SqList L;
    InitList(&L);
    int Number;
    printf("输入顺序表的元素个数:\n");
    scanf("%d",&Number);
    Create(&L,Number);
    print(&L);
    printf("请输入插入的元素:\n");
    int InputNumber;
    scanf("%d",&InputNumber);
    int Location=Locate(&L,InputNumber);
    InorderList(&L, Location,InputNumber);
    print(&L);
    return 0;
}

运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 设置docker容器镜像加速器(阿里云)

    为了加速Docker容器的拉取 我们可以设置Docker容器镜像加速器 以阿里云镜像加速器为例 您可以按照以下步骤进行设置 1 登录阿里云容器镜像服务 登录阿里云容器镜像服务 注册账号并登录 进入容器镜像服务管理控制台 2 获取镜像加速器地
  • 吃透Chisel语言.09.Chisel项目构建、运行和测试(一)——用sbt构建Chisel项目并运行

    Chisel项目构建 运行和测试 一 用sbt构建Chisel项目并运行 上一大部分介绍了Chisel的基础语法 但除了教程开始的Demo以外 我们还没有开始写Chisel代码 这对于学习编程语言来说是大忌 不过好在Chisel基础语法部分
  • 使用微 PE(U盘)安装 Windows 10 操作系统

    1 下载微PE安装包 官方下载链接 http www wepe com cn download html现在官方需要乐捐才能下载 有条件的同学可以适当的支持一下作者 2 制作PE启动盘 软件下载完成后 就可以开始制作WinPE了 需要注意的
  • 谁在成为产业经济发展的推车人?

    区域发展的新蓝图中 京东云能做什么 它的角色是什么 这个问题背后 隐藏的不仅是京东云自身的能力和价值 更是其作为中国互联网云厂商的代表之一 对 技术 产业 的新论证 作者 皮爷 出品 产业家 关于云厂商 外界更多的认知是在技术和产品层面 不
  • Vulkan Windows VS2022 开发环境配置

    1 确保编译器支持C 17 所以需要Visual Studio 2017及其以上版本 我这里用的是2022 确保环境安装了CMake CMake gui 可选装 2 下载Vulkan SDK 到 https vulkan lunarg co
  • Open3d读写pcd点云文件

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 1 Open3d 安
  • 计算机ip 地址异常,电脑显示IP地址错误怎么办

    有用户和小编反映 电脑无法上网 经过诊断后显示是IP地址错误的原因 如果我们遇到了这样的错误应该怎么办 所以 在下面的内容中 小编要和大家介绍在电脑提示IP地址错误无法上网的具体解决方法 win8 1 14 首先确定是否禁用了本地连接 如果
  • 线索二叉树

    线索二叉树 线索二叉树的概念 1 线索 线索是一种对二叉树的操作 意思是对二叉树进行线索化 其目的是使线索化后的二叉树具有方便被遍历的特点 即不使用递归和栈也可以对线索化之后的树进行中序遍历 2 基于中序遍历的线索二叉树 中序遍历 即先遍历
  • json 数组读取排序问题

    今天遇到一个依赖健值数组读取排序的问题 接口开发同事返回的json格式是这样的 我在小程序调用接口读取数组遍历之后发现排序乱了 price info 08 01 price 9999 booked 0 02 price 99999 book
  • 硬件施工的特点

    硬件施工有别于软件施工 施工管理方法存在差异 相比软件施工 硬件施工的特点 1 硬件施工通常需要垫资 2 设备安全 施工安全要小心 包括失窃 丢失 意外损失等 3 生产供货 物流周期属于强限制 4 品牌型号需明确 变更需要走正式流程 手续不
  • C基础(五)作用域和内存管理

    目录 一 作用域 1 1 作用域和生命周期 二 内存区域划分 三 堆内存的分配和释放 3 1 malloc分配堆内存 3 2 free释放堆内存 3 3 思考 解决函数返回值是指针的问题 方案一 返回一个在堆内存分配的地址指针变量 方案二
  • Java中this关键字

    含义 this关键字指代当前对象 本质就是 创建好的对象的地址 当一个对象创建后 Java虚拟机就会给对象分配一个内存空间和一个引用自身的指针 这个指针的名字就是this 用法 1 访问类中的成员变量 用来区分成员变量和局部变量 publi
  • 关于JDBC中properties默认编码格式为ISO-8859-1导致使用资源绑定器的getString方法出现乱码的解决办法

    在JDBC的注册驱动与连接数据库方面 通常将driver url user password来放入配置文件中 并使用资源绑定器ResourceBundle来更快捷灵活地进行编程 而资源绑定器的实例方法getString key 如果传入的k
  • 区块链相关

    区块链 一个个区块组成的链表 一 密码学原理 哈希碰撞 x不等于y 但是H x H y 不同的输入 输出却一致 这就称为 哈希碰撞 collision resistance puzzle friendly 不能预测输入最终的输出结果 hid
  • Unity 鼠标控制物体的移动

    一 鼠标控制物体移动 using System Collections using System Collections Generic using UnityEngine public class ControlMove MonoBeha
  • 试用74LS161和必要的门电路实现11进制计数器(要求用同步置数法实现)

    题目要求实现11进制计数器 则电路共有11个有效状态 我们可以选择0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010这11个状态作为电路的有效状态 按照上述状态选择方式 应向下图示接
  • 【 PMU】信号生成、采样、分割、估计器应用和误差计算(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 PMU 信号生成 采样 分割 估计器应用和
  • 一个简单的虹膜定位程序

    一个简单的虹膜定位实现 虹膜定位程序 clear close all I imread ip1 jpg f rgb2gray I imhist f 求图像的直方图 F Size M F Size N size f 获取f的行和列 T 84
  • Java驱动方式JDBC连接SQL Server

    Java驱动方式JDBC连接SQL Server 第一步 下载微软官方的SQL Server JDBC 驱动程序 6 0 https www microsoft com zh CN download details aspx id 1177
  • 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性

    设顺序表va中的数据元素递增有序 试写一算法 将x插入到顺序表的适当位置上 以保持该表的有序性 先建立一个待插入的结点 然后依次与与链表中的各结点的数据域比较大小 找到插入该结点的位置 最后插入该结点 算法如下 include