当前位置: 首页>>代码示例>>C++>>正文


C++ Lista::succLista方法代码示例

本文整理汇总了C++中Lista::succLista方法的典型用法代码示例。如果您正苦于以下问题:C++ Lista::succLista方法的具体用法?C++ Lista::succLista怎么用?C++ Lista::succLista使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Lista的用法示例。


在下文中一共展示了Lista::succLista方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: salta

/**
 * pos salta (Lista l, pos inizio, int k) – restituisce la posizione dell'elemento della lista l
 * ottenuta saltando k elementi a partire dalla posizione inizio;
 */
posizione salta(Lista lista, posizione start, int k) {
	
	posizione p = start;
	for ( int i = 0; i < k;  i++ ) {
		p = lista.succLista(p);
	} 
	return p;
}
开发者ID:ximarx,项目名称:asd,代码行数:12,代码来源:Controller.cpp

示例2: lunghezza

/**
 * int lunghezza (Lista l, pos inizio, pos fine) – restituisce la lunghezza della sottolista l' di l
 * costituita dagli elementi ordinati compresi tra le posizioni inizio e fine della lista l;
 */
int lunghezza(Lista lista, posizione start, posizione end) {
	
	int i = 0;
	posizione p = start;
	while ( p != end ) {
		p = lista.succLista(p);
		i++;
	}
	return i;
}
开发者ID:ximarx,项目名称:asd,代码行数:14,代码来源:Controller.cpp

示例3: stampaLista

void stampaLista(Lista lista) {

	tipoelem letto;
	
	posizione p = lista.primoLista();
	while ( !lista.fineLista(p) ) {
		lista.leggiLista(letto, p);
		cout << letto << " ";	
		p = lista.succLista(p);
	}
	
}
开发者ID:ximarx,项目名称:asd,代码行数:12,代码来源:Controller.cpp

示例4: creaSottoLista

/**
 * Lista creaSottoLista(Lista l, pos inizio, pos fine) – restituisce la sottolista l' di l costituita
 * dagli elementi compresi tra le posizioni inizio e fine della lista l;
 */
Lista creaSottoLista(Lista lista, posizione inizio, posizione fine) {
	
	Lista nuovaLista = Lista();
	posizione current = inizio;
	int i = 1;
	tipoelem letto;
	while ( current != fine ) {
		lista.leggiLista(letto, current);
		nuovaLista.insLista(letto, nuovaLista.pos(i));
		current = lista.succLista(current);
		i++;
	}
	return nuovaLista;
}
开发者ID:ximarx,项目名称:asd,代码行数:18,代码来源:Controller.cpp

示例5: private_riempiAlbero

/**
 * Riempie ricorsivamente un sotto-albero in base all'elemento
 * da inserire
 * [FUNZIONE_PRIVATA]
 */
void private_riempiAlbero(Lista lista, int lunghezzaLista, Albero &t, nodoBin nodoRiferimento) {
	
	tipoelem elemento;
	posizione p;
	nodoBin nuovoRiferimentoSx, nuovoRiferimentoDx;
	Lista listaSx, listaDx;
	int lSottolistaSx, lSottolistaDx;
	
	// 1: calcola il mediano e lo scrive nel nodo di riferimento
	p = mediano(lista,lista.primoLista(), lista.pos(lunghezzaLista));
	lista.leggiLista(elemento, p);
	t.scriviNodo(nodoRiferimento, elemento);
	// :1
	// 2: calcola la sottolista sinistra in base al mediano
	listaSx = creaSottoLista(lista, lista.primoLista(), p);
	lSottolistaSx = lunghezza(lista, lista.primoLista(), p);
	// 2.1: controlla che abbia senso avviare una ricorsione
	if ( lSottolistaSx > 0 ) {
		t.insFiglioSx(nodoRiferimento);
		nuovoRiferimentoSx = t.figlioSx(nodoRiferimento);
		// 2.1.1 Se la lista ha 1 solo elemento, allora è una foglia
		if ( lSottolistaSx == 1 ) {
			listaSx.leggiLista(elemento, listaSx.primoLista());
			t.scriviNodo(nuovoRiferimentoSx, elemento);
		// :2.1.1
		// 2.1.2 Se la lista ha piu di un elemento allora avvia la ricorsione
		} else {
			private_riempiAlbero(listaSx, lSottolistaSx, t, nuovoRiferimentoSx);
		}
		// :2.1.2
	}
	// :2.1
	// 3: calcola la sottolista destra analogamente a quella sinistra
	listaDx = creaSottoLista(lista, lista.succLista(p), salta(lista, lista.primoLista(), lunghezzaLista));
	lSottolistaDx = lunghezzaLista / 2;
	if ( lSottolistaDx > 0 ) {		
		t.insFiglioDx(nodoRiferimento);
		nuovoRiferimentoDx = t.figlioDx(nodoRiferimento);
		if ( lSottolistaDx == 1 ) {
			listaDx.leggiLista(elemento, listaDx.primoLista());
			t.scriviNodo(nuovoRiferimentoDx, elemento);
		} else {
			private_riempiAlbero(listaDx, lSottolistaDx, t, nuovoRiferimentoDx );
		}
	}
	// :3
	return;
}
开发者ID:ximarx,项目名称:asd,代码行数:53,代码来源:Controller.cpp

示例6: caricaAlberoBinario

/**
 * 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;
	
}
开发者ID:ximarx,项目名称:asd,代码行数:29,代码来源:Controller.cpp


注:本文中的Lista::succLista方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。