这个程序主要是做A=A\B的,可是chaji的部分不知道该怎么改。才能在调试的时候显示出最终的A的结果
#include <stdio.h>#include <malloc.h>
#define LIST_INIT_SIZE 20
typedef struct {
char *aa;
int ld;
int lm;
}sqlist;
int initlist(sqlist &l)
{
l.aa = (char *)malloc(10*sizeof(char));
l.ld = 0;
l.lm = 10;
return 1;
}
int LocateElem(sqlist &l,char e)
{
int i=0;
while(*(l.aa+i)!=e)
{
i++;
}
if(l.ld<i)
{
return 0;
}
else
{
return *(l.aa+i);
}
}
int listinsert(sqlist &l,int j,char ys)
{ int i;
for(i=l.ld;i>=j-1;i--)
{
*(l.aa+i)=*(l.aa+i-1);
*(l.aa+j-1)=ys;
l.ld++;
}
return 1;
}
int listdelete(sqlist &l,int k, char *ch)
{
int i;
for(i=k-1;i<l.ld;i++)
{
*(l.aa+i)=*(l.aa+i+1);
*ch=*(l.aa+k-1);
l.ld--;
}
return 1;
}
chaji(sqlist &la,sqlist &lb)
{
int i=0,j=0;
while(i<=la.ld && j<=lb.ld )
{
for(j=0;j<=lb.ld;j++)
{
char e;
e=la.aa[j];
if(LocateElem(lb,e))
{
listdelete(la,i, &e);
la.ld--;
}
return e;
}
}
}
int main()
{
sqlist La,Lb;
char LA[3]={'a','b','c'};
char LB[3]={'a','d','e'};
initlist( La);
initlist( Lb);
for(int i=1;i<4;i++)
{
listinsert(La, i,LA[i-1]);
}
for(int j=1;j<4;j++)
{
listinsert(Lb, j,LB[j-1]);
}
chaji(La,Lb);
return 0;
}