欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

有序顺序表删除重复元素

程序员文章站 2024-03-20 13:47:52
...

有序顺序表

最近的脑子像是被狗吃了一样,初试之前明明都能够写出来的算法,现在又狗屁都不是了,想破脑袋也想不出来,哎!每天事情也很多,分给算法的时间也并不是很多,也不知道现在写了算法,到时候又会不会忘记,学校的复试分数线也还没有出,天哪,赶紧来个痛苦话吧,无论如何我都是想要我的一志愿上岸!加油吧!都是些跨考生,我一个科班生还干不过他们吗?加油干过他们!

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 50
typedef int Elemtype;
typedef struct{
	Elemtype data[MaxSize];
	int length;
}SqList;
SqList Creat(SqList &L)
{
	Elemtype n,x;
	printf("请输入想要创建的元素的个数");
	scanf("%d",&n);
	printf("现在开始输入元素");
	for(int i=0;i<n;i++)
	{ 
	      scanf("%d",&x);
		  L.data[i]=x;
	}
	L.length=n;
	return L;
}
void print(SqList L)
{
	for(int i=0;i<L.length;i++)
	{
		printf("%3d",L.data[i]);
	}
	printf("\n");
}
bool Delte_2(SqList &L)
{   
	if(L.length==0)
	{
		return false;
	}
	int i=0;
	for(int j=i+1;j<L.length;j++)
	{
		if(L.data[j]!=L.data[i])
		{
           L.data[++i]=L.data[j];
		}
	}
		L.length=i+1;
		return true;
}
int main()
{
	SqList L,S;
	Creat(L);
	print(L);
	Delte_2(L);
	print(L);
	return 0;
}

这里是删除原本有序的表中重复的元素,不能开学王道书也拿不回来,其实看看上面的算法也是挺好的,基础好了别的才能好毕竟,哎,这道题也是当初王道上面的,有两个思路,因为链表是有序的,所以只要碰见第一个与之前元素不相等的,后面元素也不会相等了,所以此时直接将第一个不相等的元素加入新的链表中,以此类推,第二个思路我忘记了,王道书上有来着,现在想不起来,刚才写了然后花了半年时间之后才发现写的根本就不对!!!气我我了!

相关标签: 数据结构 链表

上一篇: Cookie

下一篇: 购物车实现