| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3184 人关注过本帖
标题:链表问题设线性表的数据元素都为整数,存放在顺序表 S 中且递增有序。设计算 ...
只看楼主 加入收藏
漠河C
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-11
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
链表问题设线性表的数据元素都为整数,存放在顺序表 S 中且递增有序。设计算法,将 x 插入到顺序表 S 的适当位置上,以保持线性表的有序性。
谢谢
#include <stdio.h>
#include <stdlib.h>
void Insertlist(struct sqlist*l,int x ,int i);
#define size  100
struct sqlist
{
    int data[size];
    int length;
};
void main()
{    struct sqlist *s;
    int t,n,i,x;
    s=(struct sqlist*)malloc(sizeof(struct sqlist));
    s->length=0;
    printf("请输入线性表的大小:");
    scanf("%d",&n);
    printf("请输入原线性表有序递增的数据元素:\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
    }
    printf("请输入一个数字:");
    scanf("%d",&x);
    Insertlist(s,x,i);
    printf("插入元素后的线性表数据元素的顺序为:");
    for(i=0;i<s->data[i];i++)
    {
        printf("%d",s->data[i]);
    }
}
void Insertlist( sqlist l,int x ,int i)
{
    if(i<0||i>l-length) exit(1);
    if(l->length>=100)   exit(1);
    for(i=0;i<l.length;i++)
    {
       if(x<=l.elem[i])
       {
        for(q=l.length;q>=i;q++)
            l.elem[q+1]=l.elem[q];
            l.elem[i]=x;
            break;
       }
      else
      {
         l.elem[l.length+1]=x;
         break;
     }
    }
    L.length++;
}
搜索更多相关主题的帖子: 线性表 顺序表 有序 int length 
2017-09-11 19:55
虾米小小小
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:135
注 册:2017-7-22
收藏
得分:20 
就在你的基础上改了......
-------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
void Insertlist(struct sqlist*l,int x ,int i);
#define size  100
struct sqlist
{
    int data[size];
    int length;
};
int main()
{   
    struct sqlist *s;
    int t,n,i,x;
    s=(struct sqlist*)malloc(sizeof(struct sqlist));
    printf("请输入线性表的大小:");
    scanf("%d",&n);
    s->length=n;
    printf("请输入原线性表有序递增的数据元素:\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
        s->data[i] = t;
    }
    printf("请输入一个数字:");
    scanf("%d",&x);
    Insertlist(s,x,i);
    printf("插入元素后的线性表数据元素的顺序为:");
    for(i=0;i<s->length;i++)
    {
        printf("%d ",s->data[i]);
    }
}
void Insertlist( sqlist *l,int x ,int i)
{
    int j,last;
    if(i<0||i>l->length) exit(1);
    if(l->length>=100)   exit(1);
    for(j=0;j<l->length;j++)
    {
       if(x>l->data[j])
       {
           continue;
       }
      else
      {
          last=i;
         while(last>j){
             l->data[last] = l->data[last-1];
             last--;   
         }
         l->data[j]=x;
         break;
     }
    }
    l->length++;
}
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-09-12 19:50
漠河C
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-11
收藏
得分:0 
回复 2楼 虾米小小小
好的。
2017-09-12 21:39
HJU
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-2-11
收藏
得分:0 
想问一下 else
      {
          last=i;
         while(i>j){
             l->data[last] = l->data[last-1];
             last--;   
         }
         l->data[j]=x;
         break;
这段是什么意思,i是怎么变化的,为什么放入last里,感谢
2020-02-11 17:20
快速回复:链表问题设线性表的数据元素都为整数,存放在顺序表 S 中且递增有序。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015643 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved