How can I do not to repeat a value in this list? Whenever I do something, I can not print.
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct lista{
int valor;
struct lista *ponteiro;
}lista;
lista *raiz=NULL;
lista* insere( int valor){
lista *aux=(lista*)malloc(sizeof(lista));
aux->valor=valor;
aux->ponteiro=raiz;
raiz=aux;
return raiz;
}
void imprime(lista* raiz){
while(raiz!=NULL){
cout<<"raiz: "<<raiz->valor<<"\n";
raiz=raiz->ponteiro;
}
}
int main(){
void imprime(lista* raiz);
lista* insere( int valor);
int valor, op;
do{
cout<<"1- insere\n2-imprime\n3-zero para sair:";
cin>>op;
switch(op){
case 1: cout<<"\ninsira um valor: ";
cin>>valor;
raiz=insere(valor );
break;
case 2: imprime(raiz);
break;
default:cout<<"valor errado ";
}
}
while(op!=0);
}