(数据结构)设计一个算法从顺序表中删除重复元素,并使剩余元素之间的相对次序保持不变. 题目没说明顺序表原先重复元素是否放在一起,例如4 3 4 2.重复元素是4,但是你自己写的算法只能处理重复元素相邻放置的情况~
数据结构,算法设计题。:1设计算法实现删除顺序表中多余重复元素,如:对于顺序表(1 . 2 .3 . 现在的学生是怎么了 这么简单的问题还不会,先对顺序表的元素进行排序,然后比较有重复则删除,算了我还是给你贴下代码吧include<;stdio.h>;/删除一列数中重复的数字使之只保留一个define N 6void delete(int a[],int j){int i;for(i=j;i;i+)a[i]=a[i+1];}void sortdAndDelete(int a[]){int i,j,k=0,t;for(i=0;i;i+)for(j=i+1;j;j+)if(a[i]>;a[j]){t=a[i];a[i]=a[j];a[j]=t;}j=0;for(i=0;i;i+){if(a[j]=a[j+1]){deletel(a,j);j-;没删除一个数字j减一,保证遍历到每个数字k+;}j+;}for(i=0;i;i+)printf(\"%d\",a[i]);}void main(){int i;int a[N]={0,1,1,2,2,2};sortd(a);}还有一种方法的用两个顺序表,一个为源表(存原数列),一个为目标表,将源表中的元素王目标表中移(有与之相同的则删除,没有则保存),最后得到的目标表不就是你想要的么,这种方法 我就不写代码了,请君自己实现,纯手打,请给分!
一个顺序表元素值有序递增,编写算法,删除顺序表中值相同的多余元素. templatevoid EraseDuplicates(std:list&vals){ std:set unique_vals(vals.begin(),vals.end());vals=std:list(unique_vals.begin(),unique_vals.end());}