예제 #1
0
파일: Controller.cpp 프로젝트: ximarx/asd
void stampaLista(Lista lista) {

	tipoelem letto;
	
	posizione p = lista.primoLista();
	while ( !lista.fineLista(p) ) {
		lista.leggiLista(letto, p);
		cout << letto << " ";	
		p = lista.succLista(p);
	}
	
}
예제 #2
0
파일: Controller.cpp 프로젝트: ximarx/asd
/**
 * Albero caricaAlberoBinario(Lista l) – costruisce un albero binario di ricerca utilizzando gli
 * elementi presenti nella lista ordinata;
 * Algoritmo per caricare l'albero binario:
 * T = caricaAlberoBinario(partizione sinistra di L rispetto a mediano(L))
 * U = caricaAlberoBinario(partizione destra di L rispetto a mediano(L))
 * T' = costrBinAlbero(T,U) in cui la radice u di T' è mediano(L)
 */
Albero caricaAlberoBinario(Lista lista) {
	
	nodoBin radice = 0;
	int lunghezzaLista = 0;
	Albero albero = Albero();
	posizione ultimo = lista.primoLista();
	
	while ( !lista.fineLista(ultimo) ) {
		ultimo = lista.succLista(ultimo);
	}
	
	radice = 0;
	albero.insBinRadice(radice);
	
	lunghezzaLista = lunghezza(lista, lista.primoLista(), ultimo);
	
	private_riempiAlbero(lista, lunghezzaLista, albero, radice);
	
	return albero;
	
}