![数据结构(C语言实现)](https://wfqqreader-1252317822.image.myqcloud.com/cover/699/43806699/b_43806699.jpg)
上QQ阅读APP看书,第一时间看更新
2.2.4 顺序表应用举例
【例2.1】 利用线性表的基本运算,实现如果在线性表A中出现的元素,在线性表B中也出现,则将A中的该元素删除。
分析:这其实是求两个表的差集,即A-B。依次检查线性表B中的每一个元素,如果该元素在线性表A中也出现,则在A中删除该元素。
求A-B的差集算法如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/33_01.jpg?sign=1739530952-ky707bLutPPj0XFV3eTnMPzFRBXGSJ4W-0-cc89ea359639682d6f0eb7aec83ac1dc)
测试程序如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/33_02.jpg?sign=1739530952-mn9YNgkW1LuRtFMbwEizcTWPd7vl9zns-0-8ca6cd69f4277b4c2a00ea02c7cd6b79)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/34_01.jpg?sign=1739530952-GZkJryVn8VfgBG2T5xsbQqAjooy84Bmu-0-9a5cdde0f7e0fc56c385e9c62e7450a4)
程序运行结果如图2.6所示。
【例2.2】 编写一个算法,把一个顺序表分拆成两个部分,使顺序表中小于等于0的元素位于左端,大于0的元素位于右端。要求不占用额外的存储空间。例如,顺序表(-12,3,-6,-10,20,-7,9,-20)经过分拆调整后变为(-12,-20,-6,-10,-7,20,9,3)。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/34_02.jpg?sign=1739530952-D4xsBGvScSsBHHAELmJgFagELKW5PA4K-0-c7206f22edec9650091b3046a8c10c2e)
图2.6 线性表A-B程序运行结果
【分析】设置两个指示器i和j,分别扫描顺序表中的元素,i和j分别从顺序表的左端和右端开始扫描。如果i遇到小于等于0的元素,略过不处理,继续向前扫描;如果遇到大于0的元素,暂停扫描;如果j遇到大于0的元素,略过不处理,继续向前扫描;如果遇到小于等于0的元素,暂停扫描。如果i和j都停下来,则交换i和j指向的元素。重复执行直到i≥j为止。
算法描述如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/34_03.jpg?sign=1739530952-Kn6RORpLGOOtVeZUxyh3dvKjpbUjn4Mr-0-05993f15a14501b474743f5b2e64c432)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/35_01.jpg?sign=1739530952-QyN0VqYKBfu398wDSs0S0B2ez2dW6tyA-0-30adad6d111704b32b3abf046ccab557)
测试程序如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/35_02.jpg?sign=1739530952-0amC3ihTSNSjwHyakxb2B5wPfqulw8rh-0-6ea4048af0040c8ec607d179e010ecd3)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/36_01.jpg?sign=1739530952-x5hxyKNRNknmO7scUAQNdGP6Ruv0Iyuj-0-efdabf338e178a5f03ab5f7b0e7fb695)
程序运行结果如图2.7所示。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/36_02.jpg?sign=1739530952-kc9Bd31OrYediXXQ932iVVUJy4Kh3WB6-0-51d40661824dd8c6ad301a3320f1c8c0)
图2.7 程序运行结果