「已注销」 2023-03-20 10:04 采纳率: 71.4%
浏览 37
已结题

关于#数据结构#的问题:试编写程序,将数据x插入顺序表S,要求插入后保持该表的有序性(语言-c++)

【问题描述】设顺序表S中的数据元素递增有序。试编写程序,将数据x插入顺序表S,要求插入后保持该表的有序性。

【输入形式】
【输出形式】
【样例输入】8

                25 28  36  78  96  102  980  1000

                88

【样例输出】25 28 36 78 88 96 102 980 1000
【样例说明】设置表长为8

                 原顺序表s:25 28  36  78  96  102  980  1000

                 插入数据:88
#include <stdio.h>
#include <stdlib.h>
#define initsize 20
#define LISTINCREMENT 5
typedef int ElemType;
typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}SqList;
void IntiList(SqList &L,int n)
{
    L.elem=(ElemType *)malloc(n*sizeof(ElemType));
    if(!L.elem)
        exit(1);
    L.length=n;
    L.listsize=initsize;
} 
int ListInsert(SqList &L,int i,ElemType x)
{
        if(L.length+1>=L.listsize)
        {    
            return 0;
        }
        for(int j=L.length;j>=i;j--)
            L.elem[j]=L.elem[j-1];
        L.elem[i-1]=x;
        L.length++;
}
int main()
{
    int n,i;
    ElemType x,*p;
    SqList L;
    printf("\n");
    scanf("%d",&n);
    IntiList(L,n);
    printf("\n");
    scanf("%d",&x);
    for(i=1,p=L.elem;p<L.elem+L.length&&*p<x;p++)
    {
        ++i;
    }
    ListInsert(L,i,x);
    for(int h=0;h<L.length;h++)
        printf("%d",L.elem[h]);
    return 0;

}

怎么修改这个代码,运行不对

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-03-20 10:16
    关注

    将插入位置后面的元素都向后移动一位
    你的代码里都没有给顺序表输入数据的代码啊。而且初始化顺序表的时候,length就等于n了啊。元素还没输入呢。length表示已经输入的元素数量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 已采纳回答 3月20日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算