1999 年试题答案:
1.
void MergeList_L(LinkList &La, LinkList &Lb,LinkList &Lc)
//已知单链线性表 La 和 Lb 的元素按值非递减排列。
//归并 La 和 Lb 得到新的单链线性表 Lc,Lc 的元素也按值非递减排列。
{
pa=La->next;pb=Lb->next;
Lc=pc=La; //用 La 的头结点作为 Lc 的头结点
while(pa&&pb)
{
if(pa->data<=pb->data)
{ pc->next=pa; pc=pa;pa=pa->next;}
else {pc->next=pb;pc=pb;pb=pb->next;}
}
pc->next=pa?pa:pb; //插入剩余段
free(Lb); //释放 Lb 的头结点
}//MergeList_L
2.
Void enqueue(Dual Stack Q, DataType a )
{
if(!Q.StackFull(1)) Q.push(a,1);
else return("overflow");
}
DataType dlqueue(DualStack Q)
DataType a;
{if(!(Q.StackEmpty(1)& &Q.StackEmpty(2)))
{if(!Q.StackEmpty(2)) a=Q.pop(2);
else {while(!Q.StackEmpty(1)) Q.push(Q.pop(1),2);
a=Q.pop(2);
}
return(a);
}
else return("Infeasible");
}
3.
void Traverse_level(Bitree bt)
{Initqueue(Q);
Enqueue(Q,bt);
while (!QueueEmpty(Q))