有顺序表A和B,其元素均从小到大的升序排列,编写一个C语言程序将他们合并成一个顺序表C,要求C的元素也是从小到大升序排列.
基本酸法如下:
void merge(Seqlist a,seqlist B, seqlist*c)
{int i,j,k;
while(i<=A.last&&j<=B.list)
if(A.data[i]<B.data[j])
c->data[k++]=A.data[i++];
else
C->data[k++]=B.data[j++];
while(i<=A.last)
C->data[k++]=A.data[i++];
while(j<=B.last)
c->data[k++]=B.data[j++];
C->last=k-1;
}
请高手帮忙写一下!!
----------------解决方案--------------------------------------------------------
void merge(Seqlist a,seqlist B, seqlist*C)
{
int i=0,j=0,k=0;
while(i<=A.last||j<=B.last)
if(A.data[i]<B.data[j])
C->data[k++]=A.data[i++];
else
C->data[k++]=B.data[j++];
C->last=k-1;
}
我对数据结构了解不多。感觉是这样.
----------------解决方案--------------------------------------------------------
有顺序表A和B,其元素均从小到大的升序排列,编写一个C语言程序将他们合并成一个顺序表C,要求C的元素也是从小到大升序排列.
基本酸法如下:
void merge(Seqlist a,seqlist B, seqlist*c)
{int i,j,k;
while(i<=A.last&&j<=B.list)
if(A.data[i]<B.data[j])
c->data[k++]=A.data[i++];
else
C->data[k++]=B.data[j++];
while(i<=A.last)
C->data[k++]=A.data[i++];
while(j<=B.last)
c->data[k++]=B.data[j++];
C->last=k-1;
}
名不正则言不顺。此类型的题目理应发往数据结构与算法论坛,那论坛很强。
[此贴子已经被作者于2006-6-8 4:46:21编辑过]
----------------解决方案--------------------------------------------------------