Jak w temacie. Mam drzewo binarne ktore wyglada np tak:
... 63e57.html
Jako zadananie mam takie cos. Uzytkownik podaje 3 liczby out,in1,in2. Nastepnie funkcja sprawdza cale drzewo, czy stnieje mozliwosc zrobienia takiego polaczenia. Dla przykladu aby zrobic polaczenia pierwsze od gory uzytkownik podaje 12, 3, 7. Reprezentacje struktury przechowujacej te dane mozna stworzyc np tak:
Kod: Zaznacz cały
typedef struct bt
{
unsigned int out;
unsigned int in1,in2;
struct bt *next;
struct bt *previosu1,*previosu2;
} bt;
bt *start;
Kod: Zaznacz cały
typedef unsigned int uint;
uint found_in,found_out;
bt *search(logic_gate *gate,const uint out,const uint in1,in2)
{
bt *tmp;
tmp=gate;
if(gate == NULL) return NULL;
if(gate->in1 == out || gate->in2 == out)
found_in++;
else
if(gate->out == in1 || gate->out ==in2 || gate->in1 == out || gate->in2 == out)
found_out++;
else
{
search(gate->previous1,out,in1.in2);
search(gate->previous2,out,in1,in2);
}
return tmp;
}
...
...
if(found_in==1 && found_out==0) add_connection();
...
Czy ten kod sie nadaje?? Z gory dzieki za kazda pomoc. POZDRO