主题:怎样将这个算法写成程序
xuexiziji
[专家分:90] 发布于 2006-03-18 18:53:00
假设有两个线性表La和Lb.分别表示两个集合 A 和 B(即线性表中的数据元素为集合中的成员)现要求一新的集合 A=A U B.
void union{list&La,listLb)
{ //将所有在线性表Lb中但不在La中的元素插入到La中
La_len=listlength(La); Lb_len=listlength(Lb);
for(i=1;i<Lb_len;i++)
{ GetElem(Lb,i,e);
if(!locateElem(La,e,equal))
Listinsert(La,++La_lenl;e)
}
}//union
怎样将这个算法写成程序啊?请各位帮帮小弟。好急啊,
回复列表 (共2个回复)
板凳
tld5yj [专家分:1310] 发布于 2006-03-19 16:51:00
是不是应该先创建一个链表啊?哦,你不要创建的过程是吧?那我试试写一下结合的过程,见笑啊,有错误的话请指出。
void sliplist *union()
{sliplist *p,*q;//两个链表是a和b;
int m=0,n=0;
head=a->head;
p=a->head;
q=b->head;
while(p->next!=NULL)
{p++;
m=m+1;
}
while(q->next!=NULL)
{q++;
n=n+1;
}
q=b->head;
for(;q->next!NULL;p++,q++)
{if(q->data==p->data)q=q->next;
else
{q=(sliplist *)malloc(sliplist);
p->next=q;
free(q);
q=q->next;
}
return(head);
}
请考虑一下我的程序,如果不行,那就是我的功底不够了,指教。
我来回复