⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shanchongfu.cpp

📁 单链表倒序
💻 CPP
字号:
#include <stdio.h>
#define maxlength 200

typedef int elementtype;
struct LIST{
	elementtype elements[maxlength];
    int last;		
};
typedef int position;

void DELETE(position p, LIST& L);
position FIRST(LIST L);
position END(LIST L);
position NEXT(position p ,LIST L);
elementtype RETRIEVE(position p, LIST L);
int same(elementtype element1, elementtype element2);


int main(void)
{
	LIST L;
	int t;
	position p,q;
	
	printf("请输入将要输入的整数的个数: ");
	scanf("%d", &L.last);
	
	while((L.last >= maxlength) || (L.last <= 0))
	{
		if(L.last <= 0)
		{
			printf("输入有误,请重新输入: ");
			scanf("%d", &L.last);
		}
		else
		{
		    printf("输入的整数个数过多,请重新输入: ");
		    scanf("%d", &L.last);
		}
			
	}
	
	printf("请依次输入想要输入的整数:\n");
	for(t = 1; t <= L.last; t++)
		scanf("%d", &L.elements[t]);
	
	printf("输入的整数依次是: ");
	for(t = 1; t <= L.last; t++)
		printf("%d  ", L.elements[t]);
	printf("\n");
	
	p = FIRST(L);
	while(p != END(L))
	{
		q = NEXT(p, L);
		while(q != END(L))
		{
			if(same(RETRIEVE(p, L), RETRIEVE(q, L)))
				DELETE(q ,L);
			else
				q = NEXT(q, L);
		}
		p = NEXT(p, L);
	}
	
	printf("删除重复元素后的输出是: ");
	for(t = 1; t <= L.last; t++)
		printf("%d  ", L.elements[t]);
	printf("\n");
	
	return 0;
}

void DELETE(position p, LIST& L)
{
	position q;
	if((p > L.last)||(p < 1))
		printf("指定位置不存在!\n");
	else{
		L.last = L.last - 1;
		for(q = p; q <= L.last; q++)
			L.elements[q] = L.elements[q+1];
	}
}

position FIRST(LIST L)
{
	return (1);
}

position END(LIST L)
{
	return (L.last + 1);
}

position NEXT(position p ,LIST L)
{
	if((p > L.last)||(p < 1))
	{
		printf("前驱元素不存在!");
	    return (-1);
	}
	else
		return (p + 1);
}

elementtype RETRIEVE(position p, LIST L)
{
	if(p > L.last)
	{
		printf("指定元素不存在!");
	    return (-1);
	}
	else
		return(L.elements[p]);
}

int same(elementtype element1, elementtype element2)
{
	if(element1 == element2)
		return 1;
	else
		return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -