Laboratorio di Algoritmi e Strutture Dati ESAME FINALE 12/12/2001
(Compito C – seconda parte)
SECONDA PARTE
C.2.1
Un grafo G=(V,E) è detto bipartito se è possibile partizionare i nodi di V in due insiemi disgiunti, U e W, in modo tale che per ogni arco e = (u,v ) in E(G), gli estremi u e v non appartengono allo stesso sottoinsieme U oppure W.In pratica, tutti gli archi di un grafo bipartito G = (U, W, E) vanno da U a W. Si scriva un programma che determini se un dato grafo fornito in ingresso come matrice di incidenza A (n x m) è bipartito. [suggerimento: si utilizzi una struttura per insiemi disgiunti con due soli insiemi S1 e S2; si consideri il nodo i e tutti i suoi nodi adiacenti. Si provi a inserire i in S1 e i suoi adiacenti in S2, e viceversa; si ripeta il procedimento per tutti i nodi del grafo]
.
C.2.2
Si disegni l’albero binario di ricerca che si ottiene, a partire da un albero vuoto, dopo ognuna delle seguenti sequenze di inserimenti (add) e cancellazioni (remove):
add <6, 3, 1, 2, 4, 7>
remove <6, 3, 7>