Răspuns :
Program C++ :
#include <iostream>
using namespace std;
struct nod{
float data;
nod *next;
}L[100];
void eliminare_dubluri(nod *x){
//Daca valoarea nodului curent e egala cu valoarea nodului urmator sterge nodul urmator.
nod *y=x->next;
while(y->next){
if(x->data == y->data){
x->next=y->next;
y=y->next;
}
else{
x=x->next;
y=y->next;
}
}
}
int main(){
int n,i;
//Citire date
cin >> n;
for(i=1;i<=n;i++){
cin >> L[i].data;
L[i].next= &L[i+1];
}
L[n].next=NULL;
//Prelucrare lista
eliminare_dubluri(&L[1]);
//Afisare lista prelucrata
nod *x=&L[1];
while(x->next){
cout << x->data << " ";
x=x->next;
}
cout << x->data << " ";
}
Nota :
Dupa cum observi programul stegre nodurile a caror valoare se repeta. Daca la citirea datelor avem 3 valori de 2 si 2 valori de 6 consecutive, la final avem doar o singura valoare.
