这道C++ 计算2个相同的元素的题怎么做的
来源:百度知道 编辑:UC知道 时间:2024/05/15 02:40:57
任意输入一组数组 如果数组中有2个或以上相同的元素 则提示正确 如果没有2个或以上的元素相同 则提示错误
比如 输入1365783 显示 有2个3 正确
输入 qwert134 则显示没有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;<