C++线性表删除元素:保留顺序存储,高效删除小于min和大于max的值
#include
typedef int ElementType; typedef struct LNode* List; struct LNode { ElementType Data[100]; int length; };
List Delete(List &L, ElementType minD, ElementType maxD) { List newList = new LNode; newList->length = 0;
for (int i = 0; i < L->length; i++) {
if (L->Data[i] >= minD && L->Data[i] <= maxD) {
newList->Data[newList->length] = L->Data[i];
newList->length++;
}
}
return newList;
}
int main() { int n; cin >> n; List L = new LNode; L->length = n; for (int i = 0; i < n; i++) { cin >> L->Data[i]; }
ElementType minD, maxD;
cin >> minD >> maxD;
List newList = Delete(L, minD, maxD);
for (int i = 0; i < newList->length; i++) {
cout << newList->Data[i] << ' '; // 将空格改为英文半角空格
}
return 0;
}
原文地址: http://www.cveoy.top/t/topic/pb2X 著作权归作者所有。请勿转载和采集!