Răspuns :
#include <iostream>
using namespace std;
struct nod{
int data;
nod *next = NULL;
};
bool test_circular(nod *n){
//memorare nod de start
nod *start = n;
//Itereaza fiecare nod. Daca gasesti nodul initial retunreaza 1
while(n->next){
n=n->next;
if(n->next==start) return 1;
}
//Daca ai ajuns la capatul listei atunci returneaza 0
return 0;
}
int main(){
//Construire lista simpla
nod a,b,c,d;
a.next=&b;
b.next=&c;
c.next=&d;
//Afisare raspuns lista simpla
if(test_circular(&a)) cout << "Lista circulara\n";
else cout << "Lista simpla\n";
//Construire lista circulara
d.next = &a;
//Afisare raspuns lista circulara
cout << endl;
if(test_circular(&a)) cout << "Lista circulara\n";
else cout << "Lista simpla\n";
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile furnizate v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de ajutor, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite!