![数据结构(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=1739465261-rdmxilyPoOuXsyB9FxmfWD1GlYkf9VWq-0-14e729253875432c5d8a79b2200f4763)
测试程序如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/33_02.jpg?sign=1739465261-pybLoYMnHPUYVMhvEvcTyiR8ixslCizk-0-1ed6b7fbd94bc99b85578bfa39896381)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/34_01.jpg?sign=1739465261-hu5bStkGZTgQ2XmCH0obSzNte52S54VU-0-a0242fa05ffe13e36e564426945e8576)
程序运行结果如图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=1739465261-egkNdUxvIa7PhKIrHpsPHPb7q9RNAo3c-0-8fac76d5101d9cc97218299915c89722)
图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=1739465261-x0KeYnMX4J3z5ON4Q7J7BDhDaz02yK11-0-6d4a58287af356ddfd696840c0588186)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/35_01.jpg?sign=1739465261-HgDaukNMpTdLfkUjWWH5pQk96CJWYRXX-0-59a2832a5d72a8693fd8b653a86e8fb1)
测试程序如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/35_02.jpg?sign=1739465261-GU7AHimOuJmBjOPXJz6aR9oBJ8t2erx2-0-72d6cf98d50f3c3fd8a9e2330b961ea9)
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/36_01.jpg?sign=1739465261-nnXioORBz7krMg6ulVH0L4TOKnnHyZ0W-0-b9eaa12aa1d174606bb6513f7c1c9509)
程序运行结果如图2.7所示。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/36_02.jpg?sign=1739465261-bmGkyI8OHuvGeet6w7bmgay8TavItMsd-0-28b356d6bdb8a7143f608ee6fa195624)
图2.7 程序运行结果