首页 > 其他分享 >顺序表

顺序表

时间:2024-04-21 23:56:04浏览次数:17  
标签:顺序 int max 插入 printf data

数据结构

顺序表练习题

图片1

1.已知一个顺序表L,其中的元素递增有序排列,设计一个算法,插入一个元素x(x为int型)后保持该顺序表仍然递增有序排列(假设插入操作总能成功)。

/**************************************************************************************
 *
 *
 *  file name:  demo_1.c
 *  author   :  [email protected]
 *  date     :  2024/04/21
 *  function :  设计一个算法,在有序的顺序表中插入一个数,且递增有序
 *  note     :  None
 *
 *  CopyRight (c)   2024    [email protected]   All Right Reserved
 *************************************************************************************/

#include <stdio.h>
// 假设插入操作总能成功,所以不必判断该顺序表L容量有没有满的问题
// 但是要分顺序表L为空和非空的情况,如果为空可直接插入到数组的第一个位置,非空的话需要进行查找才能插入到指定位置。
// 1.顺序表L不为空在顺序表中从后往前开始遍历,找到第一个大于等于x的位置,记为max
// 2.将max及比x大的元素都往后移动一位,方便x插入
// 3.更新顺序表L的长度
#define MAX_SIZE 100
typedef struct
{
  int data[MAX_SIZE];
  int length;
} SeqList;
// 插入元素并保持递增有序
void InsertElement(SeqList *L, int x)
{
  int max = L->length - 1;
  while (max >= 0 && L->data[max] > x)
  {
    L->data[max + 1] = L->data[max];
    max--;
  }
  L->data[max + 1] = x;
  L->length++;
}
int main()
{
  SeqList L = {{1, 2, 4, 8, 9}, 5};
  int x;
  printf("请输入要插入的元素");
  scanf("%d", &x);
  // printf("%d", x);
  InsertElement(&L, x);
  printf("插入后顺序表L的元素为:");
  for (int i = 0; i < L.length; i++)
  {
    printf("%d\n", L.data[i]);
  }
  return 0;
}

标签:顺序,int,max,插入,printf,data
From: https://www.cnblogs.com/little-mirror/p/18149786

相关文章

  • 每月做账先后顺序
    每月做账先后顺序。·1、收付款分录:根据银行回单做。·2、销售分录:根据销售发票和出库单做(当月开具的发票)。·3、采购分录:根据采购发票和入库单做(采购提供的发票)。·4、费用分录:根据费用发票做(办公费、差旅费、推广费、咨询费等)。·5、计提工资、社保、公积金:根据工资表、社......
  • JMeter组件的执行顺序和作用域
    组件介绍测试计划:jmeter的起点和容器线程组:代表一定的虚拟用户取样器:发送请求的最小单元逻辑控制器:控制组件的执行顺序前置处理器:在请求之前的操作后置处理器:在请求之后的操作断言:判断请求是否符合预期定时器:是否延迟或间隔发送请求配置元件:请求期的配置信息监听器:负责......
  • 栈1: 栈的顺序存储
    栈:顺序存储栈是一种先进后出(FirstInLastOut,FILO)的数据结构如果你将两个元素压入栈,先加入的元素将在后加入的元素之后出栈栈顶元素值为null(未满时)定义栈的数据结构#defineMAX_SIZE1024//利用数组模拟栈的顺序存储typedefstructsqStack{void*data[MA......
  • 【Go】02.顺序编程
    类型基础类型类型关键字布尔类型bool整型int8、byte、int16、int、uint、uintptr浮点类型float32、float64复数类型complex64、complex128字符串string字符类型rune错误类型error复合类型类型关键字指针pointer数组array......
  • 图解 SQL 执行顺序,通俗易懂!
      数据的关联过程from&join&wheregroupbyhaving&whereselectorderbylimit这是一条标准的查询语句: 这是我们实际上SQL执行顺序:我们先执行from,join来确定表之间的连接关系,得到初步的数据where对数据进行普通的初步的筛选groupby分组各组分别执行havi......
  • Kafka如何保证消息的顺序性
    Kafka发布模式通过一系列机制来确保消息的顺序性,特别是在分区内部。以下是关键要点:1.分区机制:Kafka的核心机制之一是分区(Partition)。每个主题(Topic)可以被分割成多个分区,而消息在发布时会被追加到特定的分区中。在每个分区内部,消息是按照它们被追加的顺序来存储的,因此保证了分区......
  • 27.C语言顺序循环结构结构练习题整理
    参考:https://www.qingsuyun.com/lib/d/600120380038000300010041/6、【单选题】语句while(!e);中的条件!e等价于()。[2分] ***AA、e==0B、e!=1C、e!=0D、~e9、【单选题】以下叙述正确的是()。[2分] ****BA、continue语句的作用是结束整个循环的执行......
  • Java中Array.sort()的几种用法简明教程 (需要初始化要排序的对象)对 一个数组的所有元素
    Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)对一个数组的所有元素进行排序,并且是按从小到大的顺序Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)======================================================1、Arrays.sort(int[]a)......
  • 数据结构之顺序表(java语言版)
    顺序表是最简单的线性表,也就是数组。很多语言都把把它当做内置的基本数据类型,这里的数组没有对应数据结构的操作。数组是顺序存储的结构,连续分配一段内存用于存储数据。在逻辑结构和物理结构上都是连续的。顺序表建立在java内置的数组上建立顺序表。publicclassArray{ pri......
  • C语言顺序表代码实现
    声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除,删除k个元素、有序表插入、元素逆置、2个有序表合并等。#include<stdio.h>#include<stdlib.h>//顺序表的定义:#defineListSiz......