| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 863 人关注过本帖
标题:把两个顺序表变成一个有序顺序表,怎么做啊?谢谢!
只看楼主 加入收藏
Sunshine喵喵
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-4-26
结帖率:75%
收藏
已结贴  问题点数:14 回复次数:6 
把两个顺序表变成一个有序顺序表,怎么做啊?谢谢!
#include<stdio.h>
#define maxsize 10
typedef struct
{
    int v[maxsize];
    int len;
}sqlist;
void conect(sqlist *L,sqlist *I)
{
    int i,j,k;
    for(i=0;i<L->len;i++)
    {
        for(j=0;j<I->len;j++)
        {
            if(L->v[i]<I->v[j])
                I->len++;
                for(k=I->len-1;k<=j;k--)
                    I->v[k]=I->v[k-1];
                I->v[j]=L->v[i];
        }
        for(i=0;i<(I->len+L->len);i++)
         printf("%d",I->v[i]);
    }
}
    main()
    {
        sqlist a,b;
        a.v[0]=1;
        a.v[1]=3;
        a.v[2]=5;
        a.v[3]=7;
        a.v[4]=9;
        a.v[5]=11;
        a.len=6;
        b.v[0]=2;
        b.v[1]=4;
        b.v[2]=6;
        b.v[3]=8;
        b.v[4]=10;
        b.len=5;
       conect(&a,&b);
    }


搜索更多相关主题的帖子: 顺序 
2009-10-20 17:05
uipower
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2009-10-20
收藏
得分:3 
路过~~~~~~~~~~~~~~~~~~~~~~~~~·

Skin++ for Visual C++ [url=http://www./]www.[/url]
2009-10-20 17:13
Sunshine喵喵
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2009-4-26
收藏
得分:0 
这个没有错误,但是不能运行
2009-10-20 21:38
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:3 
我不懂链表,可不可以如下试一下啊:
int i=0,j,k;
   
        for(j=I->len;j<I->len+L->len;j++)
            {
                I->v[j]=L->v[i];
                i++;
  
             }
2009-10-20 21:54
plumblossom
Rank: 2
等 级:论坛游民
帖 子:7
专家分:17
注 册:2009-10-19
收藏
得分:3 
typedef struct List{
    int data;
    struct *next;
}List;
 
void conect(List *a,List *b,List *c){    //假设a,b为从小到大排列的顺序表,conect函数将a,b合并为从小到大排列的顺序表c
    List *q,*p;
    q=a;
    p=b;
    for(;q&p;){
        if(*q<*p){
            c=q;
            q=q->next;
        }
        if(*q>*p){
            c=p;
            p=p->next;
        }
        else{
        c=q;         
        q=q->next;
        }
        c=c->next;
        if(!q) c=p;
        if(!p) c=q;
    }
}

不晓得对不对!~
2009-10-21 02:34
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:3 
  
#include<stdio.h>
#define maxsize 10
typedef struct
{
    int v[maxsize];
    int len;
}sqlist;
void conect(sqlist *L,sqlist *I,int m,int n)
{
    int i=0,j=0,k;
    sqlist c;
     while(i<m&&j<n)
      {
          if(L->v[i]<I->v[j])
           { c.v[k]=L->v[i];
               i++;k++;
           }
           else
            { c.v[k]=I->v[j];
                j++;k++;
            }
       }
       while(i<m)
       {  c.v[k]=L->v[i];
           i++;k++;
       }
       while(j<n)
       {  c.v[k]=I->v[j];
          j++;k++;
      }
    for(i=0;i<m+n;i++)
      printf("%d ",c.v[i]);
 
 
}
    main()
    {
        sqlist *a,*b;
        a->v[0]=1;
        a->v[1]=3;
        a->v[2]=5;
        a->v[3]=7;
        a->v[4]=9;
        a->v[5]=11;
        a->len=6;
        b->v[0]=2;
        b->v[1]=4;
        b->v[2]=6;
        b->v[3]=8;
        b->v[4]=10;
        b->len=5;
       conect(a,b,a->len,b->len);
       getch();
    }
呵呵,这个也给你改一下,在主函数中的变量a,b,改成指针变量,因为我不太清楚当主函数中的结构体变量义地址的方式传的条用函数时,他的结构体值是不是也传过去了??调用函数中的排序方法你看看,不一定好!但还能用!

离恨恰如春草,更行更远还生。
2009-10-21 17:56
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:0 
忘记加注释了!,,你慢慢看。

离恨恰如春草,更行更远还生。
2009-10-21 17:57
快速回复:把两个顺序表变成一个有序顺序表,怎么做啊?谢谢!
数据加载中...
 
   



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

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