假设顺序表L中的元素按从小到大的次序排列,设计算法以删除表中重复的元素,用C++写,谢谢

对顺序表(1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,8,9)模拟执行本算法,并统计移动元素的次数

#include<stdio.h>
int main()
{
int a[18]={1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,8,9};
int b[18]={1},i,j=1,k,cnt=0;
for(i=1;i<18;i++)
{
if(a[i]!=a[i-1])
{
b[j++]=a[i];
}
}
puts("删除后的数据");
for(i=0;i<j;i++)printf("%d ",b[i]);
puts("");
for(i=0;i<j;i++)
{
cnt=0;
for(k=0;k<18;k++)
{
cnt+=(a[k]==b[i]);
}
printf("%d出现%d次\n",b[i],cnt);
}
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

假设顺序表L中的元素按从小到大的次序排列,设计算法以删除表中重复的...
include<stdio.h> int main(){ int a[18]={1,1,2,2,2,3,4,5,5,5,6,6,7,7,8,8,8,9};int b[18]={1},i,j=1,k,cnt=0;for(i=1;i<18;i++){ if(a[i]!=a[i-1]){ b[j++]=a[i];} } puts("删除后的数据");for(i=0;i<j;i++)printf("%d ",b[i]);...

求: 删除顺序表中值相同的节点的算法 要C++的
实现从表中删除所有其值重复的元素的函数如下:template<Type> void SeqList<Type> :: DelDouble ( ) { if ( last == -1 ){ cerr << “List is empty!” << endl; exit(1); } int i = 0, j, k; Type temp;while ( i <= last ) { \/\/循环检测 j = i + 1; tem...

用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初...
}\/\/在线性表的第i个元素之前插入元素e void PrintList(List L){ printf("顺序表中的元素:\\n");for(int k=0;k<=L.length-1;k++)printf("%5d",L.elem[k]);printf("\\n");} void main(){ \/\/void SqList(List &L);\/\/int InsertSq(List &L,int i,int e);使用之前已经定义了...

【算法-初级-数组】删除排序数组中的重复项(多语言版实现)
双指针思路:快慢指针上场,快指针fast,慢指针low。数组是有序的,那么重复的元素一定会相邻。在同一个数组里面操作,也就是不重复的元素移到数组的左侧,最后取左侧的数组的值。算法流程图解:这将是最具有灵魂的一刻了。没有图解的算法都是耍流氓!(哈哈哈,我会尽量把我之前的流氓行为更正过来哈!

有关顺序表的问题 Dev-c++操作的
}SeqList;\/\/ 构造一个空顺序表SeqList *init_SeqList(){SeqList *L;L=(SeqList*)malloc(sizeof(SeqList));L->last=0;return L;}\/\/ 向顺序表插入一个元素eStatus Insert(SeqList *L,datatype e){if(L->last>=100&&L==NULL) return ERROR;L->data[L->last++]=e;return OK;}\/\/...

用C++建立一个线性表,输入10个数,并按从小到大显示出来
Status ListInsert_Sq(SqList &L,int i,ElemType e) \/* 算法2. 4 *\/ { \/* 初始条件:顺序线性表L 已存在,1≤i≤ListLength(L)+1 *\/ \/* 操作结果:在L 中第i 个位置之前插入新的数据元素e,L 的长度加1 *\/ ElemType *newbase,*q,*p;if(i<1||i>L.length+1) \/* i 值不...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
为了实现C++程序,可以按照以下步骤来完成一个从键盘输入10个整数并按从小到大排序的功能:首先,创建一个结构体,名为`IntInfo`,包含整数值(数值域)、排名(排名域)和序号(序号域)。接着,定义一个`IntInfo`类型的数组`d`,用于存储输入的10个整数及其相关信息。定义两个自定义函数:`compare...

用算法实现:单链表和顺序表删除。删除顺序表中值相同的多余结点
解: 重写的算法如下: void InsertSort(SeqList R) {\/\/对顺序表中记录R[0..n-1]按递增序进行插入排序 int i,j; for(i=n-2;i>=0;i--) \/\/在有序区中依次插入R[n-2]..R[0] if(R[i].key>R[i+1].key) \/\/若不是这样则R[i]原位不动...

c++ STL删除算法:remove()、remove_copy()、remove_if()、remove_copy...
由图可知,remove删除功能只是元素的覆盖,细指针起始位置到结束位置间的元素才是真正的结果。对比示例:粗指针起始位置=细指针起始位置=v1.begin(),粗指针结束位置=v1.end(),细指针结束位置=remove(v1.begin(),v1.end(),2)。remove_copy函数模板的行为等效于:从前两个正向迭代器参数指定的...

...若存储方式为单链表,设计算法去掉数值相同的元素,使
核心算法:用两个指针p,pre,其中pre指向p的直接前驱结点。比较p->data和pre->data是否相等,如果相等将p继续只想下一个结点(即:p=p->next),直到不相等为止。此时就要更新pre和p的值,删除pre和p之间的结点(即:pre->next=p;),接着让p指向pre的下一个结点(即:p=pre->next;),细节上...

相似回答