Se va discuta despre noduri, muchii, grupe, functii si fielduri
Muchie muchii[]; Grupa grupe[]; bool stearsa[]; int celalalt_nod_al_muchiei (int muchie, int nod); int Grupa::cealalta_muchie (int o_muchie_a_acestei_grupe); int Muchie::grupa_din_partea_nodului (int unul_dintre_nodurile_acestei_muchii); void euler(int grupa_la_care_vreau_sa_ajung, int muchie_de_intrare, int nod_curent){ int grupa_curenta=...; int muchie_de_iesire=grupe[grupa_curenta].cealalta_muchie (muchie_de_intrare); stearsa[grupa_curenta]=true; if(grupa_curenta!=grupa_la_care_vreau_sa_ajung) euler (grupa_la_care_vreau_sa_ajung, muchie_de_iesire, celalalt_nod_al_muchiei (muchie_de_iesire, nod_curent)); for(Grupa grupa : grupe_care_nu_sunt_sterse){ int prima_muchie_din_grupa = grupa.prima_muchie; int a_doua_muchie_din_grupa = grupa.a_doua_muchie; int muchia_pe_care_ma_voi_duce; if(muchii[prima_muchie_din_grupa].culoare == muchii[muchie_de_intrare].culoare|| muchii[a_doua_muchie_din_grupa].culoare == muchii[muchie_de_iesire]) muchia_pe_care_ma_voi_duce = a_doua_muchie_din_grupa; else muchia_pe_care_ma_voi_duce = prima_muchie_din_grupa; int nodul_in_care_voi_ajunge=celalalt_nod_al_muchiei (muchia_pe_care_ma_voi_duce, nod_curent); int grupa_in_care_voi_ajunge=muchii[muchia_pe_care_ma_voi_duce].grupa_din_partea_nodului (nod_curent); euler (grupa_in_care_voi_ajunge, muchia_pe_care_ma_voi_duce, nodul_in_care_voi_ajunge); } printf ("%d ",nod_curent); }