顺序表类型定义如下:
#define ListSize 100
typedef struct{
int data[ListSize];
int length;
}SeqList;
阅读下列算法,并回答问题。
void mysum(SeqList *SL1,SeqList *SL2)
{int minlength,k=0;
minlength=SL2-> length;
for(k=0;k<minlength;k++)
if(SL1-> data[k]<SL2-> data[k]) SL1-> data[k]+=SL2-> data[k];
else SL2-> data[k]+=SL1-> data[k];
return;
}
void f30(SeqList *SL1,SeqList *SL2)
{if(SL1-> length> SL2-> length) mysum(SL1,SL2);
else mysum(SL2,SL1);
return;
}
(1)若SL1-> data中的数据为(52,14,256,-9,-38,30,128,257,64),SL2-> data中的数据为(32,14,-63,15,29,51,16,8),则执行算法f30(&SL1,&SL2)后SL1-> data和SL2-> data中的数据各是什么?
(2)该算法的功能是什么?
【正确答案】:(1)SL1-> data中的数据是(52,14,256,6,-9,81,128,257,64)
SL2-> data中的数据是(84,28,193,15,29,51,144,265)
(2)该算法比较两个线性表中相同下标位置的两个元素(以较短者为限),将两者之和放到原来较小者的位置,若原来两者相等,则将两者之和放到SL2中。
顺序表类型定义如下:#define ListSize 100typedef struct{int data[ListSize];
- 2024-11-07 01:33:18
- 数据结构与算法(13003)