首页 > 试题广场 >

设两个带头结点单链表的头指针分别为A和B,链表中结点的数据域

[问答题]
设两个带头结点单链表的头指针分别为A和B,链表中结点的数据域为data(设为整型),指针域为next。请用C语言函数形式写出将表A和表B合并为一个单链表L的算法;Union(A,B,L) (注:若表A和表B中有数据值相同的结点,只保留其中一个)。
推荐
Typedef struct node
    {int data;
    struct node *next;
    }link node,*link;
void Union(link A,link B,link L)
    {link q,p,p1,u;
    q=B->next;L=A;p1=A->next;free(B);
    while(q)
        {p=p1;
         while(p&&p->data!=q->data) p=p->next;
         if(p=NULL)
         { u=q->next;q->next=A->next;A->next=q:q=u;}
          else {u=q;q=q->next;free(u);}
        }
    }

发表于 2018-07-18 20:41:40 回复(0)