void MergeList_Sq( SqList La, SqList Lb ,SqList &Lc )
{
//已知顺序线性表La和Lb的元素按值非递减排列
//归并La和Lb得到新的顺序线性表Lc,Lc的元素也按值非递减排列
pa=La.elem;
pb=Lb.elem;
Lc.listsize=Lc.length=( ElemType*)malloc( Lc.Listsize *sizeof(ElemType) );
if(!Lc.elem)exit(OVERFLOW);//存储分配失败
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
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++;
}//MergeList_Sq
7 个解决方案
#1
赋值语句
#2
循环中指针变量的赋值
等价于
*pc=*pa;
pc++;
pa++;
等价于
*pc=*pa;
pc++;
pa++;
#3
赋值,然后指针移动
#4
谢谢 libralibra的解答,不过,为了试验,我自己写了个程序,但仍出错,出错提示为:“Lvalue required in function main ”
出错位置标在下面程序中。
请各位大侠多多指点。
void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/* pc=pa;pc++;pa++; 这句能编译通过*/ /* pc++=pa++; 这句提示出错*/ printf("pc= ",pc," pa= ",pa,"No. :" ,i++,"\n");
}
}
出错位置标在下面程序中。
请各位大侠多多指点。
void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/* pc=pa;pc++;pa++; 这句能编译通过*/ /* pc++=pa++; 这句提示出错*/ printf("pc= ",pc," pa= ",pa,"No. :" ,i++,"\n");
}
}
#5
把pa指向的数据的值赋给pc指向的数据
应该是这样
#6
一对一的拷贝
#7
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
是什么意思
pb_last=Lb.elem+Lb.length-1;
是什么意思
#1
赋值语句
#2
循环中指针变量的赋值
等价于
*pc=*pa;
pc++;
pa++;
等价于
*pc=*pa;
pc++;
pa++;
#3
赋值,然后指针移动
#4
谢谢 libralibra的解答,不过,为了试验,我自己写了个程序,但仍出错,出错提示为:“Lvalue required in function main ”
出错位置标在下面程序中。
请各位大侠多多指点。
void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/* pc=pa;pc++;pa++; 这句能编译通过*/ /* pc++=pa++; 这句提示出错*/ printf("pc= ",pc," pa= ",pa,"No. :" ,i++,"\n");
}
}
出错位置标在下面程序中。
请各位大侠多多指点。
void main()
{
int pc,pa,i;
pc=pa=i=1;
while( pc<=20 )
{
/* pc=pa;pc++;pa++; 这句能编译通过*/ /* pc++=pa++; 这句提示出错*/ printf("pc= ",pc," pa= ",pa,"No. :" ,i++,"\n");
}
}
#5
把pa指向的数据的值赋给pc指向的数据
应该是这样
#6
一对一的拷贝
#7
pa_last=La.elem+La.length-1;
pb_last=Lb.elem+Lb.length-1;
是什么意思
pb_last=Lb.elem+Lb.length-1;
是什么意思