C++实现:删除线性表中小于min或大于max的元素
#include <stdio.h> #define MAXSIZE 20 typedef int ElementType; typedef int Position; typedef struct LNode List; struct LNode { ElementType Data[MAXSIZE]; Position last; / 线性表的长度*/ };
List Delete( List &L, ElementType minD, ElementType maxD ) { Position p = 0; // 记录当前位置 for (int i = 0; i <= L->last; i++) { if (L->Data[i] >= minD && L->Data[i] <= maxD) { L->Data[p++] = L->Data[i]; // 将符合条件的元素移到前面 } } L->last = p - 1; // 更新线性表长度 return L; }
List ReadInput() { List L = (List)malloc(sizeof(struct LNode)); int num, temp; scanf("%d", &num); for (int i = 0; i < num; i++) { scanf("%d", &(L->Data[i])); } L->last = num - 1; return L; }
void PrintList(List L) { for (int i = 0; i <= L->last; i++) { printf("%d ", L->Data[i]); } }
int main() { List L; ElementType minD, maxD; L = ReadInput(); scanf("%d %d", &minD, &maxD); L = Delete(L, minD, maxD); PrintList(L); return 0; }
原文地址: http://www.cveoy.top/t/topic/pb2C 著作权归作者所有。请勿转载和采集!