这道C++ 计算2个相同的元素的题怎么做的

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:40:57
任意输入一组数组 如果数组中有2个或以上相同的元素 则提示正确 如果没有2个或以上的元素相同 则提示错误
比如 输入1365783 显示 有2个3 正确
输入 qwert134 则显示没有2个相同的元素 错误

对链表这个地方不太懂 所以做这个很迷糊
因为老师要求要用链表做这个

建立链表,并且插入输入的元素,插入的同时排序。
这就可以发现相同元素了。

ps:老犯晕,疯了。

最后一句,怎么突然冒出来个“链表”?

方法:先排序原数组,调用unique方法后看看元素的个数有没有减少,如果少了就是正确的,否则错误。如果数组的元素都是ascii码,可以使用hash的方式,这样就不用排序了。

#include <iostream>
using namespace std;

struct Node
{
char elem;
Node *next;
};

typedef Node *LinkList;

Node *MakeNode(char elem)
{
Node *p = (Node *)malloc(sizeof(Node));

if(p==NULL)
{
cout<<"节点生成失败!"<<endl;
return NULL;
}

p->elem = elem;
p->next = NULL;

return p;
}

LinkList createList(LinkList L)
{
if(L==NULL)
{
return NULL;
}
char elem;
LinkList node=NULL,prior=NULL,cur=NULL;
cout<<"Input : "<<endl;

while((elem=getchar())!=10)
{
node=MakeNode(elem);
if(!L->next)
{
L->next = node;<