Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
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: 5722
[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: 5722
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: 5722
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


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jensen Huang avrebbe nascosto ai vertici...
Le prime cuffie over-ear di Vivo arrivan...
GPU, CPU e fotoni: il piano di AMD per p...
La soluzione di Google per i nuovi occhi...
Il futuro di XBOX passa per l'intelligen...
Amazon, le 13 offerte da non perdere ogg...
Svendita TV su MediaWorld: OLED LG e Sam...
AMD si ricorda dei gamer, ma il messaggi...
Fate in fretta: su Mediaworld c'è...
Ho usato ArtCraft per trasformare un mio...
SSD e hard disk su AliExpress: 4TB a sol...
Due Mac agli antipodi in forte sconto su...
Quick Spectral Super Resolution (QSSR): ...
AMD Ryzen, prezzi interessanti su AliExp...
Zenbook S è un MacBook Air che co...
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: 17:44.


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