#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 i, j; for (i = 0; i <= L->last; i++) { if (L->Data[i] >= minD && L->Data[i] <= maxD) { // 如果元素在[minD, maxD]范围内,则将其删除 for (j = i; j < L->last; j++) { L->Data[j] = L->Data[j+1]; } L->last--; i--; // 删除元素后,索引i需要减1 } } return L; }

List ReadInput() { List L = (List)malloc(sizeof(struct LNode)); int num, i; scanf("%d", &num); for (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; }

C语言线性表删除指定范围元素函数实现及示例

原文地址: http://www.cveoy.top/t/topic/pbZ9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录