⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2_14.htm

📁 辅助学习帮助大家学习
💻 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>&amp;</B>La,  LinkList  <B>&amp;</B>Lb,  LinkList  <B>&amp;</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-&gt;next;   pb = Lb-&gt;next;</P>
<P ALIGN="JUSTIFY">  Lc = pc = La;&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>&#9;&#9;&#9;&#9;&#9;</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>&amp;&amp;</B> pb )  </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{</P><DIR>

</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">if</B> ( pa-&gt;data &lt;= pb-&gt;data )  </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>{&#9;&#9;&#9;&#9;&#9;</B></FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果</FONT><FONT SIZE=3> <I>pa</I>-&gt;data</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>≤</FONT><I><FONT SIZE=3>pb</I>-&gt;data</P></DIR>

<P ALIGN="JUSTIFY">  &#9;  pc-&gt;next = pa;</P><DIR>

<P ALIGN="JUSTIFY">  pc = pa;</P>
<P ALIGN="JUSTIFY">  pa = pa-&gt;next;</P></DIR>

<B><P ALIGN="JUSTIFY">  &#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>}</FONT><FONT SIZE=3> </B>// if </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>结束&#9;</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>&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>如果</FONT><FONT SIZE=3> <I>pa</I>-&gt;data &gt; <I>pb</I>-&gt;data</P>
<P ALIGN="JUSTIFY">  pc-&gt;next = pb;</P>
<P ALIGN="JUSTIFY">  pc = pb;</P>
<P ALIGN="JUSTIFY">  pb = pb-&gt;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-&gt;next = pa <B>?</B> pa <B>:</B> pb;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>&#9;&#9;&#9;&#9;&#9;</FONT><FONT SIZE=3>// </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>插入剩余段</P>
</FONT><FONT SIZE=3><P ALIGN="JUSTIFY">  <B>free</B> (Lb);&#9;&#9;&#9;&#9;</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>&#9;&#9;&#9;&#9;&#9;</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 + -