C++ 线性表删除元素:高效实现范围筛选和元素保留
#include\x20<stdio.h> #define\x20MAXSIZE\x2020 typedef\x20int\x20ElementType; typedef\x20int\x20Position; typedef\x20struct\x20LNode\x20List; struct\x20LNode\x20{ \x20\x20ElementType\x20Data[MAXSIZE]; \x20\x20Position\x20last;\x20/\x20线性表的长度*/ };
List\x20Delete(\x20List\x20&L,\x20ElementType\x20minD,\x20ElementType\x20maxD\x20)\x20{ \x20\x20int\x20i,\x20j; \x20\x20for\x20(i\x20=\x200,\x20j\x20=\x200;\x20i\x20<=\x20L->last;\x20i++)\x20{ \x20\x20\x20\x20if\x20(L->Data[i]\x20>=\x20minD\x20&&\x20L->Data[i]\x20<=\x20maxD)\x20{ \x20\x20\x20\x20\x20\x20L->Data[j]\x20=\x20L->Data[i]; \x20\x20\x20\x20\x20\x20j++; \x20\x20\x20\x20} \x20\x20} \x20\x20L->last\x20=\x20j\x20-\x201; \x20\x20return\x20L; }
List\x20ReadInput()\x20{ \x20\x20List\x20L; \x20\x20int\x20num,\x20i; \x20\x20L\x20=\x20(List)malloc(sizeof(struct\x20LNode)); \x20\x20scanf("%d",\x20&num); \x20\x20for(i\x20=\x200;\x20i\x20<\x20num;\x20i++)\x20{ \x20\x20\x20\x20scanf("%d",\x20&(L->Data[i])); \x20\x20} \x20\x20L->last\x20=\x20num\x20-\x201; \x20\x20return\x20L; }
void\x20PrintList(\x20List\x20L\x20)\x20{ \x20\x20for(int\x20i\x20=\x200;\x20i\x20<=\x20L->last;\x20i++)\x20{ \x20\x20\x20\x20printf("%d\x20",\x20L->Data[i]); \x20\x20} }
int\x20main()\x20{ \x20\x20List\x20L; \x20\x20ElementType\x20minD,\x20maxD; \x20\x20L\x20=\x20ReadInput(); \x20\x20scanf("%d\x20%d",\x20&minD,\x20&maxD); \x20\x20L\x20=\x20Delete(L,\x20minD,\x20maxD); \x20\x20PrintList(L); \x20\x20return\x200;
原文地址: http://www.cveoy.top/t/topic/pb3M 著作权归作者所有。请勿转载和采集!