从增序顺序表 a 中删除那些既在 b 表中出现又在 c 表中出现的数据元素

来源:百度知道 编辑:UC知道 时间:2024/04/30 08:25:49
题目说明:
class SqList //顺序表
{
ElemType *elem;
int length;
int listsize;
};

****************************************
函数原型:
void difference_sqlist( SqList& a, SqList b, SqList c )
{
// 从增序顺序表 a 中删除那些既在 b 表中出现又在 c 表中出现的数据元素
//******************************************************************
}

我的原码:

void difference_sqlist( SqList& a, SqList b, SqList c )
{
// 从增序顺序表 a 中删除那些既在 b 表中出现又在 c 表中出现的数据元素
//******************************************************************
if(a.length*b.length*c.length!=0)
{
int i,j,k,x;
bool m,n;

for(i=0;i<a.length;i++)
{
for(j=0;j<b.length;j++)
if(a.elem[i]==b.elem[j]){
m=true;break;}

for(k=0;k<c.length;k++)
if(a.elem[i]==c.elem[k]){
n=true;break;}

if(m&n)
{
if(i==(a.length-1)){
a.length--;break;}

else
{fo

这是向量问题的典型错误
(a*b)*c中a*b 是一个数量,由共线向量a=xb得知(a*b)*c表示平行于c 的向量,同理(b*c)*a表示平行于a 的向量,(a*b)*c与(b*c)*a模不一定相等故命题错误

楼上强~~

sad]=a.elem[x+1];}

{--a.length;--i;m=false;n=false;}}}

}
}
}