10

来源:互联网 发布:淘宝推广店铺 编辑:程序博客网 时间:2024/04/27 14:38

问题

       设带头结点且头指针为ha和hb的两线性表A和B分别表示两个集合。两表中元素皆为递增有序。请写一算法求A和B的并集。要求该并集中的元素仍保持递增有序,且要利用A和B原有结点空间。

分析

       实际上思路和第9题类似,把B中有而A中没有的元素插入到A中去,不就是第9题么。只不过不用重新申请空间保存B的结点,直接用B的结点就行。

代码

typedef int ElemType;typedef struct LNode {    ElemType data;    struct LNode * next;}LNode, *LinkList;void unionList(LinkList &l1, LinkList &l2) {    LNode *p = l1 -> next, *p1 = l1, *q = l2 -> next;    while(p && q) {        if(p -> data == q -> data) {///值相等,对应指针移动            p = p -> next;            q = q -> next;            p1 = p1 -> next;        }else if(p -> data < q -> data) {            p = p -> next;            p1 = p1 ->next;        }else if(p -> data > q -> data) {            LNode * q1 = q -> next;            q -> next = p;            p1 -> next = q;            p1 = p1 -> next;            q = q1;        }    }}

源代码

        http://123.206.59.223:8080/code/code/10.rar
0 0