-->
当前位置:首页 > 题库 > 正文内容

程序填空题:链式有序表的合并

Luz4年前 (2021-05-10)题库2069
已知单链表LA和LB的元素按值非递减排列
归并LA和LB得到新的单链表LC,LC的元素也按值非递减排列

```
#include
using namespace std;
#define ERROR 0

typedef struct LNode
{
int data;
struct LNode *next;
} LNode, *LinkList;

void InitList_L(LinkList &L)
{
L = new LNode;
L->next = NULL;
}

void input(LinkList &L, int n)
{
int i=0;
LNode *p, *r;
r = L;
while (i p = new LNode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
i++;
}
}

void output(LinkList L)
{
int i = 0;
LNode *p;
p = L->next;
while (p) {
if (i)
cout << ",";
cout << p->data;
p = p->next;
i = 1;
}
}

void MergeList_L(LinkList &LA, LinkList &LB, LinkList &LC)
{
LinkList pa, pb, pc;
pa = LA->next;
pb = LB->next;
LC = LA;
pc = LC;
while(@@[pa && pb](2))
{
if (pa->data <= pb->data)
{
@@[pc->next = pa; ](2)
@@[pc = pa;](2)
@@[pa = pa->next;](2)
} else {
@@[pc->next = pb;](2)
@@[pc = pb;](2)
@@[pb = pb->next;](2)
}
}
pc->next = pa ? pa : pb;
delete LB;
}

int main() {
LinkList La, Lb, Lc;
int num_a, num_b;
cin >> num_a >> num_b;
InitList_L(La);
input(La, num_a);
InitList_L(Lb);
input(Lb, num_b);
InitList_L(Lc);
MergeList_L(La, Lb, Lc);
output(Lc);
return 0;
}
```






答案:
第1空:pa && pb

第2空:pc->next = pa;

第3空:pc = pa;

第4空:pa = pa->next;

第5空:pc->next = pb;

第6空:pc = pb;

第7空:pb = pb->next;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。