// INSERIRE: COGNOME NOME PROFESSORE POSTAZIONE // RINOMINARE QUESTO FILE IN "risultato.java" // COMPILARE CON IL COMANDO "javac risultato.java" // ESEGUIRE CON IL COMANDO "java Main" class ArrayBinTreeDFS { //"tree" e' la rappresentazione lineare dell'albero binario //"n" e' il numero di nodi (interni) dell'albero binario int n; boolean mark[]; int tree[]; ArrayBinTreeDFS ( int num_nodi ) { n = num_nodi; mark = new boolean[n+1]; tree = new int[n+1]; for (int i=1; i <= n; i++) mark[i] = false; for (int i=1; i <= n; i++) tree[i] = i; } boolean isInternal( int i ) { return i <= n; } boolean isExternal( int i ) { return i > n; } int leftChild( int i ) { return 2*i; } int rightChild( int i ) { return 2*i + 1; } int parent( int i ) { return i/2; } void unMarkAll() { for (int i=1; i <= n; i++) mark[i] = false; } void mark( int i ) { mark[i]=true; } boolean isMarked( int i ) { return mark[i]; } public int[] pathDFS( int s, int z ) throws Exception { //"s" vertice inizio del cammino //"z" vertice termine del cammino int path[] = new int[n+1]; //INSERIRE QUI' IL CODICE SOLUZIONE DEL PROBLEMA return path; } void printDFSPath( int path[] ) { System.out.print("\nPercorso: "); for ( int i = path[0]-1; i > 0; i-- ) System.out.print(" " + path[i] ); } } class Main { public static void main( String argv[] ) throws Exception { int n = 15; //numero nodi interni ArrayBinTreeDFS tree = new ArrayBinTreeDFS(n); tree.printDFSPath(tree.pathDFS(15,5)); System.out.println(); } }