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

删除顺序表中重复元素,并按照原序输出

程序员文章站 2024-03-20 13:29:40
...

问题描述:从顺序表中删除重复的元素,并使得剩余元素间的相对次序保持不变。

解决思路:
PS:将结果表归为一个新表,理解较为容易(接下来以旧表和新表相称)
①先定义新表的长度和迭代器(初始长度为1,迭代器置0,即将第一个数值归入新表)
②旧表迭代器置1(第二个值)
③旧表迭代器后移一位,新表迭代器归0
③旧表每向后移动一次迭代器,需遍历一次新表与该值进行比对
ⅰ、遍历完成新表未发现相等情况,则将该数值归入新表,新表长度加1
④若迭代器小于表长,回第二步

具体代码:

int num = 1;                    //新表的长度
if(size > 1) {
  	 int nRank = 0;                //新表的迭代器
 	  //遍历旧表,比较数值
	   for(int oRank = 1; oRank < size ; oRank++) { 
  		  nRank = 0;              //迭代器重置
   		 //此处遍历新表,与旧表中的数据进行比对
 		 while(nRank < num && a[nRank] != a[oRank])
   			  nRank++;
    		//如果遍历整个新表都未发现相同数值,则表长加一,加入新值
 		 if(nRank == num)
  		  {
 			    a[nRank] = a[oRank];
 			    num = nRank+1;
 		   }
   	   }
  }
  return num;    //返回新表长

测试结果:
删除顺序表中重复元素,并按照原序输出

相关标签: 算法 算法