本文整理汇总了C++中Lista::pos方法的典型用法代码示例。如果您正苦于以下问题:C++ Lista::pos方法的具体用法?C++ Lista::pos怎么用?C++ Lista::pos使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lista
的用法示例。
在下文中一共展示了Lista::pos方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: caricaElementi
/**
* crea una lista costituita dai seguenti elementi: 4, 7, 9, 10, 13, 14, 15;
*/
Lista caricaElementi () {
Lista lista = Lista();
tipoelem el[7] = {4,7,9,10,13,14,15};
for ( int i = 1; i < 8 ; i++ ) {
lista.insLista(el[i-1], lista.pos(i));
}
return lista;
}
示例2: 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;
}
示例3: 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;
}