求顺序表差集,请解答!谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:26:41
# include "datastru.h"
# include <stdio.h>

int delete (SEQUENLIST *a, DATATYPE1 x, int i ){
/*将x元素插在a表的指定的i的位置上*/
int k;
if ( i < 1 || i > a->last || a->last >= MAXSIZE)
return 0;
else {
for ( k = a->last ; k >= i ; k --)
a->datas[i] = x;
a->datas[ k+1 ] = a->datas[k];
a->last--;
return 1; }
}

int locate (SEQUENLIST *a, DATATYPE1 x){
/*x元素在a表中,返回x元素所在位置k;否则返回0*/
int k;

k = 1;
while (k <= a->last && a->datas[k] = x )
k++;
if ( k <= a->last)
return k ;
else return 0;
}

void chaji( SEQUENLIST *la, SEQUENLIST lb)
{
int i;
for ( i = 1 ; i <= lb.last ; i++)
if( locate(lb,a->datas[i])) /*如果lb表中元素不在la表中,*/
delete ( la, a->datas[i], la->last--); /*则将lb表中的该元素插到l

int delete (SEQUENLIST *a, DATATYPE1 x, int i )
这个有问题
delete是关键字..不能作为函数名的吧..

还有这个函数
void chaji( SEQUENLIST *la, SEQUENLIST lb)
里面用到了a这个变量,但a不是全局变量,要么传参,要么设为全局

int locate (SEQUENLIST *a, DATATYPE1 x)
这个函数里有这样一个语句
while (k <= a->last && a->datas[k] = x )
第二个条件确定是赋值(a->datas[k] = x)不是比较(a->datas[k] == x)?