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 că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru întrebări sau asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!