👤

ajutoooooooooooor in c++
Elaborați un program care să determine daca o lista este liniara sau circular


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!


Ze Learnings: Alte intrebari