Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-03-2010, 00:21   #1
gabmac2
Senior Member
 
Iscritto dal: Jun 2009
Messaggi: 5626
[C] Albero binario e somma nodi livello k

Come faccio a sommare i nodi a livello k se posso solo "portare su" a e liv?
Quote:
int sommalivello(Albero *a, int livcorr, int liv)
{ if (a==NULL) return 0;
else
if (livcorr==liv) return a->inf;
else return (sommalivello(a->left,livcorr+1,liv)+
sommalivello(a->right,livcorr+1,liv));
}
Grazie in anticipo
gabmac2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 00:38   #2
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da gabmac2 Guarda i messaggi
Come faccio a sommare i nodi a livello k se posso solo "portare su" a e liv?

Grazie in anticipo
dovresti postare anche la struttura dell'albero

perchè a->inf ad esempio cos'e' ?
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 01:51   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Che intendi con "portare su"?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 09:36   #4
gabmac2
Senior Member
 
Iscritto dal: Jun 2009
Messaggi: 5626
intanto grazie,intendo dire passarlo come parametro e nella struttura dell' albero ho
int val e 2 struct per *left e *right
gabmac2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 12:30   #5
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
facilissimo

pseudocodice, spero si capisca:
(R é il nodo radice dell'albero, R.Left é il figlio sinistro, R.Right il destro, k é il livello, i é un parametro intero che indica il livello corrente)
Codice:
function f(R, k, i) :
	if i < k :
		n <- 0
		if R has left child :
			n <- n + f(R.Left, k, i + 1)
		if R has right child :
			n <- n + f(R.Right, k, i + 1)
		return n
	else :
		return 1
chiamata iniziale:
Codice:
f(T, k, 0)
dove T é un albero e k il livello.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 13:19   #6
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da gabmac2 Guarda i messaggi
intanto grazie,intendo dire passarlo come parametro e nella struttura dell' albero ho
int val e 2 struct per *left e *right
Ah, se puoi passare solo il livello e l'albero allora si fa in una maniera quasi identica a quella che ti ha descritto fero86:
Codice:
algoritmo SommaLivelloK(albero T, intero L)
{
    intero risultato = 0;

    se (T non è nullo) e (L >= 0) {
        risultato += chiave(T);
        risultato += SommaLivelloK(sinistro(T), L - 1);
        risultato += SommaLivelloK(destro(T), L - 1);
    }

    restituisci risultato;
}
ciao

P.S.: chiaramente, le funzioni chiave(), sinistro() e destro() associano ad ogni nodo dell'albero, rispettivamente, un valore chiave, un figlio sinistro, un figlio destro.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!

Ultima modifica di DanieleC88 : 01-03-2010 alle 13:29.
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2010, 15:36   #7
gabmac2
Senior Member
 
Iscritto dal: Jun 2009
Messaggi: 5626
grazie davvero ragazzi,ho risolto,ma ho un nuovo problema,
Quote:
int sommapos(bst *a,int pos,int x){
int k;
if(a==NULL) return 0;
else{
if(pos%x==0)
return a->val+sommapos(a->left,pos+1,x)+sommapos(a->right,pos+1,x);
else return sommapos(a->left,pos+1,x)+sommapos(a->right,pos+1,x);}}
come faccio a sommare a nodi in pos multipla a x (in preordine) portando su solo x e non pos?
Grazie
gabmac2 è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2010, 16:17   #8
Maestro
Senior Member
 
Iscritto dal: Jun 2002
Messaggi: 442
Chiedo scusa al thread starter se mi intrometto ma ho visto questo thread a proposito di ricorsione ed alberi ennari e volevo chiedere un quesito in questa sede visto che mi sembrate molto competenti in materia

Se la mia funzione torna un array, come posso fare per eseguirla ricorsivamente *per ogni elemento dell'array* (che a sua volta potrà originare un array con più di un elemento)?

Attraverso un for posso scorrere tutto l'array e richiamare la funzione con l'oggetto aggiornato ma si ferma ovviamente (?) al primo elemento e non li scorre tutti.

Non so se sia rilevante, ma nel mio caso sto usando PHP.
__________________
-
Maestro è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2010, 16:23   #9
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da gabmac2 Guarda i messaggi
grazie davvero ragazzi,ho risolto,ma ho un nuovo problema,

come faccio a sommare a nodi in pos multipla a x (in preordine) portando su solo x e non pos?
Grazie
Dev'essere necessariamente ricorsiva? Perché IMHO viene più semplice da fare iterativamente.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
La VPN integrata in Firefox sarà ...
Frigorifero LG multidoor slim a 746€ su ...
C'è un altro Galaxy S26 in arrivo...
Horizon Worlds non chiude su Quest: Meta...
Cloudflare contesta Piracy Shield: &egra...
Ecco gli smartphone sotto i 300€ più int...
DLSS 5 massacrato? Siete 'assolutamente ...
Redmi Note 15 Pro a 259€ su Amazon: 200 ...
Lenovo punta a rivoluzionare il settore ...
Batteria quantistica che si ricarica in ...
FRITZ! in sconto su Amazon: router, mode...
OpenAI punta sui tool Python di Astral p...
Intel valuta un aumento dei prezzi delle...
12 MW e oltre 20.000 pannelli: Stellanti...
Sono bastate solo 5 ore per insegnare a ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v