📄 2_14.htm
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>第 2 章 线性表</TITLE>
</HEAD>
<BODY>
<B><FONT SIZE=3><P ALIGN="JUSTIFY">14. </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>例</FONT><FONT SIZE=3> 2-4 </B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>写一算法。假设头指针为</FONT><FONT SIZE=3> <I>La</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>Lb</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的两个有序单链表分别为两个有序线性表</FONT><FONT SIZE=3> <I>LA</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>LB</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的存储结构。要求归并</FONT><FONT SIZE=3> <I>La</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>Lb</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>得到一个有序单链表</FONT><FONT SIZE=3> <I>Lc</I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,并且</FONT><FONT SIZE=3> <I>Lc</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>La</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>共用一个表头。</P>
</FONT><B><FONT SIZE=3><P ALIGN="JUSTIFY"> void</B> MergeList_L ( LinkList <B>&</B>La, LinkList <B>&</B>Lb, LinkList <B>&</B>Lc, ) </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{</P>
</B></FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> // </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>已知单链表</FONT><FONT SIZE=3> <I>La </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>Lb </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的元素按非递减排列,</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> // </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>归并</FONT><FONT SIZE=3> <I>La </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>和</FONT><FONT SIZE=3> <I>Lb </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>得到新的单链表</FONT><FONT SIZE=3> <I>Lc </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><I><FONT SIZE=3>Lc </I></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的元素也按非递减排列</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> pa = La->next; pb = Lb->next;</P>
<P ALIGN="JUSTIFY"> Lc = pc = La;			</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>					</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>用</FONT><FONT SIZE=3> <I>La</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的头结点作为</FONT><FONT SIZE=3> <I>Lc</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的头结点</P>
</FONT><B><FONT SIZE=3><P ALIGN="JUSTIFY"> while</B> ( pa <B>&&</B> pb ) </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{</P><DIR>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">if</B> ( pa->data <= pb->data ) </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{					</B></FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果</FONT><FONT SIZE=3> <I>pa</I>->data</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>≤</FONT><I><FONT SIZE=3>pb</I>->data</P></DIR>
<P ALIGN="JUSTIFY"> 	 pc->next = pa;</P><DIR>
<P ALIGN="JUSTIFY"> pc = pa;</P>
<P ALIGN="JUSTIFY"> pa = pa->next;</P></DIR>
<B><P ALIGN="JUSTIFY"> 	</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>}</FONT><FONT SIZE=3> </B>// if </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结束	</P><DIR>
</FONT><B><FONT SIZE=3><P ALIGN="JUSTIFY">else</B> </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{</B></FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>									</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果</FONT><FONT SIZE=3> <I>pa</I>->data > <I>pb</I>->data</P>
<P ALIGN="JUSTIFY"> pc->next = pb;</P>
<P ALIGN="JUSTIFY"> pc = pb;</P>
<P ALIGN="JUSTIFY"> pb = pb->next; </P>
</FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY">}</FONT><FONT SIZE=3> </B>// else </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结束</P></DIR>
</FONT><B><FONT SIZE=3><P ALIGN="JUSTIFY"> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>}</B></FONT><FONT SIZE=3> // while</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结束</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> pc->next = pa <B>?</B> pa <B>:</B> pb;	</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>					</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>插入剩余段</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY"> <B>free</B> (Lb);				</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>					</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>释放</FONT><FONT SIZE=3> <I>Lb</I> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的头结点</P>
<B><P ALIGN="JUSTIFY">}</B></FONT><FONT SIZE=3> // MergeList_L</P></FONT></BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -