设有线性表A=(a1,a2,…am),B=(b1,b2,…bn)。试写一合并A、B为线性表C的算法,使得 假设A.B均以单链表为存储结构(并且m、n显式保存)。要求C也以单链表为存储结构并利用单链表A、B的结点空间。

admin2014-12-25  37

问题 设有线性表A=(a1,a2,…am),B=(b1,b2,…bn)。试写一合并A、B为线性表C的算法,使得
   
假设A.B均以单链表为存储结构(并且m、n显式保存)。要求C也以单链表为存储结构并利用单链表A、B的结点空间。

选项

答案先依次分别从A,B表头部取下结点,插入C表中。然后再判断A,B表中哪个还非空,将非空表插AN C表尾部。 void merge(SqList&A,&B,&c) /*A,B,C均为有头结点的单链表*/ { C=A; P=C; while((A一>next!=NULL)&&(B一>next!=NULL)) /*A、B均非空*/ { p一>next=A;P=A;A=A一>next; /*将A表结点Ai连接C表*/ p一>next=B;P=B;B=B一>next; /*将B表结点Bi连接C表*/ } if(B==NULL)p一>next=A; /*若A表不空将A表连接到C表*/ else p一>next=B; /*若B表不空将B表连接到C表*/ }

解析
转载请注明原文地址:https://jikaoti.com/ti/cjLaFFFM
0

最新回复(0)