| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3065 人关注过本帖
标题:两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C,求修改啊
只看楼主 加入收藏
ksws0191053
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2010-12-3
结帖率:42.86%
收藏
已结贴  问题点数:5 回复次数:2 
两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C,求修改啊
程序代码:
#include<stdio.h>
#include<malloc.h>
#define OK 1 
#define ERROR 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define ElemType int

typedef struct
{
    int *elem;
    int length;
    int listsize;
}List;

int InitList(List *L,int n)
{
    L->elem=(ElemType *)malloc(n*sizeof(ElemType));
    if(!L->elem) return(ERROR);
    L->length=n;
    L->listsize=n;
    return OK;
}


void MergeList(List *La,List *Lb,List *Lc)
{
    int *pa = La->elem; int *pb = Lb->elem;
    int *pa_last,*pb_last,*pc;

 Lc->listsize = La->length + Lb->length;

 Lc->length = Lc->listsize;

 pc = Lc->elem = (ElemType * )malloc(Lc->listsize * sizeof(ElemType));

 pa_last = La->elem + La->length;

 pb_last = Lb->elem + Lb->length;

 while((pa<pa_last) &&(pb<pb_last))

 {
  if(*pa<=*pb) *pc++ = *pa++;

 
  else *pc++ = *pb++;

 

 }

 while(pa<pa_last) *pc++ = *pa++;

 while(pb<pb_last) *pc++ = *pb++;
}

int Load(List *L)
{
    int i;
    if(!L->length) printf("The List is empty!"); 
    else
    {
        printf("The List is: ");
        for(i=0;i<=L->length-1;i++) printf("%d ",L->elem[i]); 
    }
    printf("\n");
    return OK;
}

int main()
{
    int i=0,j=0,n;
    List La,Lb,Lc;
    printf("请输入一个数字\n");
    scanf("%d",&n);
    InitList(&La,n);
    for(;i<n;i++)
    {
        scanf("%d",&(La.elem[i]));
    }
    printf("请输入一个数字\n");
    scanf("%d",&n);
    InitList(&Lb,n);
     for(;j<n;j++)
    {
        scanf("%d",&(Lb.elem[j]));
    }
    InitList(&Lc,i+j);
        MergeList(&La,&Lb,&Lc);
    Load(&La);
    Load(&Lb);
    Load(&Lc);
    return 0;
}
    

最后输出Lc的结果是一堆地址,修改了好久啊,求救。
2011-09-20 00:52
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:5 
没有呀,哪里是一堆地址了?
2011-09-20 01:08
ksws0191053
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2010-12-3
收藏
得分:0 
回复 2楼 czsbc
应该是我win7 64位的问题,纠结啊,到学校实验室又行了
2011-09-22 23:08
快速回复:两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C,求修改啊
数据加载中...
 
   



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

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