已知L为非递减的顺序表,请设计算法删除L中重复的元素(即删除后使L表变为一递增表)。

已知L为非递减的顺序表,请设计算法删除L中重复的元素(即删除后使L表变为一递增表)。,第1张

已知L为非递减的顺序表,请设计算法删除L中重复的元素(即删除后使L表变为一递增表)。
#include 
#include 

#define OK 1;

typedef int status;
typedef int ElemType;

typedef struct
{
	ElemType *elem;
	int length;
	int listlize;
}SqList;

status InitList(SqList *L,int len)		
{
	L->elem = (int*)malloc(sizeof(int)*len);
	L->length = len ;
	return OK;
}

void DeleteList(SqList *L,int i)
{
	int *p;
	int *q;
	p = &(L->elem[i]);					
	q = L->elem + L->length - 1;			
	for (*p; p < q; p++)				
	{
		*p = *(p + 1);
	}
	--L->length;
}

int main(void)
{
	SqList L;
	int len,i;
	int *p, *q;
	printf("请输入你将要输入数字的个数:");
	scanf("%d", &len);
	InitList(&L, len);
	printf("输入您想输入的数值:");
	for (i = 0; i < len; i++)
	{
		scanf("%d", &L.elem[i]);
		printf(" ");
	}
	printf("n");
	p = L.elem; q = L.elem + 1;		
	i = 1;							
	while (L.length>i)				
	{
		if (*p == *q)				
		{
			DeleteList(&L, i);
		}
		else						
		{
			p++; q++; i++;
		}
	}
	printf("删改后的数据为:n");
	for (i = 0; i < L.length; i++)	
	{
		printf("%dt", L.elem[i]);
		
	}
	return 0;
}



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3970309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存