当前位置: 首页 > news >正文

递增顺序表插入

问题描述

【问题描述】

设有递增有序顺序表,实现其插入元素后依然有序。

【输入形式】

第一行输入一个N(N不大于100);

第二行输入N个整数(假设输入序列按照递增顺序,以空格分隔);

第三行输入一个整数M(欲插入数据);

【输出形式】

输出插入M后的顺序表。

【样例输入】

5

12 25 35 98 125

77

【样例输出】

12 25 35 77 98 125 

程序设计 

#include<stdio.h>
#include<malloc.h>
#define MAX 10
#define IN 10
typedef struct List{
    int *data;
    int len;
    int size;
}List,*PList;
int Init(PList L){
    L->data=(int *)malloc(sizeof(int)*MAX);
    L->len=0;
    L->size=MAX;
    return 1;
}
int Create(PList L){
    int n,i;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&L->data[i]);
        L->len++;
    }
    return 1;
}
int Print(PList L){
    int i;
    for(i=0;i<L->len;i++){
        printf("%d ",L->data[i]);
    }
    printf("\n");
    return 1;
}
int Insert(PList L){
    int m,i;
    scanf("%d",&m);
    while(L->len==L->size){
        L->data=(int *)realloc(L->data,(L->size+IN)*sizeof(int));
        L->size+=IN;
    }
    for(i=L->len-1;i>=0&&L->data[i]>m;i--){
        L->data[i+1]=L->data[i];
    }
    L->data[i+1]=m;
    L->len++;
    return 1;
}
int main(){
    List L;
    Init(&L);
    Create(&L);
    Insert(&L);
    Print(&L);
    return 0;
}  

相关文章:

  • 《这!就是街舞》,好综艺还是好生意?
  • MySQL数据库的基本操作及存储引擎的使用
  • B22-9-5
  • 双非本计算机从零开始三年努力能做到什么程度【学习路线回顾总结问答】
  • 消息队列事务消息
  • 4.2 Hive SQL
  • C++ 【多态】
  • 一台服务器最大能支持多少条TCP连接
  • Linux中目录的概述以及 查看 切换 创建和删除目录
  • 剑指 Offer 03. 数组中重复的数字
  • 5_会话管理实现登录功能
  • 【STL】STL入门(9)
  • 超市积分管理系统(Java+Web+MySQL)
  • 超级简单的机器学习入门
  • 基于SSM跨境电商网站的设计与实现/海外购物平台的设计
  • Flutter——常用布局
  • RBF神经网络python实践学习(BP算法)
  • _Linux 动态库
  • spring5(一):概述
  • C++基础知识梳理<2>(引用、内联函数、auto关键字) [入门级】