.
printf(\ } }
5.2 链表的生成
void createlist_p(struct set *&p,int n) {
int i;
struct set *L;
p=(struct set *)malloc(sizeof(set)); /* 申请结点p */
p->next=NULL; /* 定义p的next指针为空 */
{
L=(struct set *)malloc(sizeof(set)); /* 申请结点L*/
for(i=n;i>0;i--)
.
.
printf(\请输入该集合中第%d个整数元素:\
scanf(\
L->next=p->next;
p->next=L;
}
}//生成新链表用于存放两集合中的元素
5.3 集合的输出
void printlist_p(struct set *&p) {
struct set *L;
int i;
L=p->next;
if(!L) printf(\该表为空!\\n\
while(L!=NULL)
.
.
{
printf(\
L=L->next;
i++; }
printf(\
}//打印输入的两集合中的元素
5.4 并运算函数
void Addset(struct set *&p,struct set *&q,struct set *&r) {
struct set *k,*m,*n;
r=(struct set *)malloc(sizeof(set)); /* 申请结点r */
r->next=NULL; /* 定义r的next指针为空 */
k=p->next; /* k指向p的下一个结点 */
.
.
for(;k;) {
m=(struct set *)malloc(sizeof(set)); /* 申请结点m */
m->next=r->next;
r->next=m;
m->coef=k->coef;
k=k->next;
} /* 把第一个集合中的元素放在新集合中 */
k=q->next;
m=(struct set *)malloc(sizeof(set));
m->next=r->next;
r->next=m;
.
.
m->coef=k->coef;
k=k->next;
for(;k;) {
for(n=r->next;(k->coef!=n->coef)&&n->next;)
{
n=n->next;
if((k->coef!=n->coef)&&!(n->next))
{
} /* 与新集合中的元素比较,如果不同则链入链表中 */
m=(struct set *)malloc(sizeof(set));
m->next=r->next;
r->next=m;
.