数据结构实现以较高的效率实现删除线性表中元素值在x到y(x和y自定)之间的所有元素。

以较高的效率实现删除线性表中元素值在x到y(x和y自定)之间的所有元素。

#include<stdio.h>
#include<stdlib.h>

#define  X 10
#define  Y 30
#define  N 20

int A[N] = { 2, 5, 15, 30, 1, 40, 17, 50, 9, 21, 32, 8, 41, 22, 49, 31, 33, 18, 80, 5 };

void del(int *A, int *n, int x, int y)
{
	int i, j;
	for (i = j = 0; i < *n; i++)
	if (A[i] > y || A[i] < x)	// 不在x到y之间,则保留
		A[j++] = A[i];
	*n = j;
}

void output(int *A, int n)
{
	int i;
	printf("\n数组有%d个元素:\n", n);
	for (i = 0; i < n; i++) {
		printf("%7d", A[i]);
		if ((i + 1) % 10 == 0)
			printf("\n");
	}
	printf("\n");
}

int main()
{
	int n;
	n = N;
	output(A, n);
	del(A, &n, X, Y);
	output(A, n);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/strive_0902/article/details/79702242
今日推荐