Răspuns :
Program C++
#include <iostream>
using namespace std;
struct nod
{
char info;
nod* next=NULL, * back=NULL;
};
nod* construieste_nod(nod* anterior) {
nod* curent = new nod;
curent->back = anterior;
anterior->next = curent;
cout << "\nValoare nod : ";
cin >> curent->info;
return curent;
}
nod* sterge_nod(nod* nod_de_sters) {
(nod_de_sters->back)->next = nod_de_sters->next;
(nod_de_sters->next)->back = nod_de_sters->back;
nod* temp = nod_de_sters->next;
delete nod_de_sters;
return temp;
}
bool se_sterge(nod* curent) {
if ((curent->back)->info == (curent->next)->info) return 1;
return 0;
}
void sterge_noduri_vecini_egali(nod* start) {
while (se_sterge(start))
start = sterge_nod(start);
nod* curent=start->next;
while (curent != start) {
if (se_sterge(curent))
curent = sterge_nod(curent);
else curent = curent->next;
}
}
void afisare_lista(nod* start) {
nod* curent = start;
cout << curent->info << " ";
curent = curent->next;
while (curent != start) {
cout << curent->info << " ";
curent = curent->next;
}
}
int main() {
nod* start=new nod;
int nr_noduri;
//Citire si construire noduri
cout << "Nr noduri : ", cin >> nr_noduri;
cout << "Valoare nod :", cin >> start->info;
nod* curent=start;
while (--nr_noduri) {
curent=construieste_nod(curent);
}
curent->next = start;
start->back = curent;
sterge_noduri_vecini_egali(start);
afisare_lista(start);
}
Vă mulțumim că ați vizitat site-ul nostru web care acoperă despre Informatică. Sperăm că informațiile furnizate v-au fost utile. Nu ezitați să ne contactați dacă aveți întrebări sau aveți nevoie de asistență suplimentară. Ne vedem data viitoare și nu ratați să marcați.