ajutoooooooooooor in c++
Elaborați un program care să determine daca o lista este liniara sau circular
Răspunsuri la întrebare
#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";
}