|
|
题目::假设有两个按元素值递增有序排列的线性表
A和B,均以单链表作存储结构,请编写算法将A表和B表
归并成一个按元素值递减有序(即非递增有序,允许表
中含有值相同的元素)排列的线性表C, 并要求利用原
表(即A表和B表)的结点空间构造C表。
实现下列函数:
void Union(LinkList &lc, LinkList la, LinkList lb);
/* 依题意,利用la和lb原表的结点空间构造lc表 */
单链表类型定义如下:
typedef struct LNode{
ElemType data;
struct LNode *next;
} LNode, *LinkList;
我的程序:
void Union(LinkList &lc, LinkList &la, LinkList &lb)
{ struct LNode *pa,*pb,*p;
pa=la->next; //用ha的头结点作为hc的头结点
pb=lb->next;
la->next=NULL;
lc=la;
while(pa||pb)
{ if(pa->data<=pb->data||pa)
{p=pa;
pa=pa->next;
p->next=lc->next;
lc->next=p;
}
else
{p=pb;
pb=pb->next;
p->next=lc->next;
lc->next=p;
}
}
}
但是结果不对 我改了很久很多次都运行结果不对 我现在还弄不懂出错在哪里 麻烦大家啦! |
|