Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-04-2005, 15:42   #1
Ancosen
Member
 
L'Avatar di Ancosen
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 183
[C] Funzione Albero Binario Completo

Con questa consegna:

Si definisca una funzione C che restituisce 1 se l'albero in input è completo, 0 altrimenti. Un albero binario è completo se ogni nodo ha 0 o 2 figli e tutte le foglie sono al piu’ su due livelli successivi, con quelle sul livello massimo tutte a sinistra. In altre parole un albero binario e’ completo se per ogni nodo i suoi sottoalberi sinistro e destro hanno la stessa altezza, il sinistro e’ pieno e il destro completo oppure il sottoalbero di sinistra, completo, e’ di 1 piu’ alto di quello di destra, che deve essere pieno. La funzione ha il seguente prototipo: int completo(treePtr tPtr)

Io avevo pensato a questo visto che credo un po' tutto dipenda dall'altezza dell'albero in questione.

#include<stdio.h>
#include<stdlib.h>

struct treenode
{
struct treenode *lPtr;
int data;
struct treenode *rPtr;
};
typedef struct treenode TreeNode;
typedef TreeNode *treePtr;

int completo(treePtr tPtr);
int alt(treePtr tPtr);
int max (int x, int y);

int alt(TreePtr tPtr) {
if (!tPtr ) return -1;
return max(alt(tPtr->lPtr),alt(tPtr->rPtr)) +1;
}

int max (int x, int y) {
if (x<y) return y;
else return x;
}

int completo(treePtr tPtr)
{
if (alt(tPtr->lPtr) == alt(tPtr->rPtr))
return 1;
return 0;
}

La mia domanda è se la funzione implementata può essere migliorata e se manca qualcosa d'importante. Grazie mille!
Ancosen è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2005, 19:54   #2
Cr4m3
Member
 
L'Avatar di Cr4m3
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 203
Oddio anke tu alle prese con gli homework?
Cr4m3 è offline   Rispondi citando il messaggio o parte di esso
Old 12-04-2005, 22:05   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
LOL ma quanti ce ne sono che vengono dalla Sapienza???
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 13:45   #4
Ancosen
Member
 
L'Avatar di Ancosen
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 183
Up... Semo tanti della Sapienza!
Ancosen è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 13:46   #5
Cr4m3
Member
 
L'Avatar di Cr4m3
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 203
:P se fossero un po piu chiari sti esercizi non ce ne sarebbe manco uno
Cr4m3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 13:50   #6
Ancosen
Member
 
L'Avatar di Ancosen
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 183
Si, in effetti Gorla con la consegna che ha dato, non ci fa capire una mazza...
Ancosen è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:34   #7
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
non li ho ancora fatti sono ancora un pivello delle superiori ma l'anno prossimo faccio anche io
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:35   #8
Cr4m3
Member
 
L'Avatar di Cr4m3
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 203
si sta meglio senza conosce gli alberi :P
Cr4m3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:36   #9
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
però potrei tentarci lo stesso, intanto me la cavo benino
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:37   #10
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
Quote:
Originariamente inviato da Cr4m3
si sta meglio senza conosce gli alberi :P
purtroppo possono venire buoni
anche fino allo scorso anno pensavo che si vivesse anche senza allocazione dinamica della memoria o senza le liste e annessi e connessi ma in realtà sono comodissimi
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:41   #11
Cr4m3
Member
 
L'Avatar di Cr4m3
 
Iscritto dal: Mar 2003
Città: Roma
Messaggi: 203
io con le liste, ci convivo abb bene, con l'allocazione dinamica un po meno pero non litighiamo spesso, con gli alberi prorpio non c'è feeling
Cr4m3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:46   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non gestisci questo caso: "e tutte le foglie sono al piu’ su due livelli successivi, con quelle sul livello massimo tutte a sinistra"

int completo(treePtr tPtr)
{
if (alt(tPtr->lPtr) == alt(tPtr->rPtr))
return 1;
return 0;
}

Secondo questo ragionamento contorto un albero del genere è completo:
Codice:
     A
    / \
   B  C
  / \
 D  E

Ultima modifica di cionci : 13-04-2005 alle 17:49.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:51   #13
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
in effetti è vero ma...mistero
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 17:57   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Comunque è facile: per essere completo le altezze o sono uguali o quella di sinistra è amggiore di uno di quella di destra...almeno così ho capito io...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 18:02   #15
sirus
Senior Member
 
Iscritto dal: Mar 2004
Messaggi: 16053
beh anche per me che non ho ancora fatto queste cose (solo in teoria) non sembra un problema così complesso
sirus è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2005, 18:18   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
C'è anche un altro errore... In alt devi controllare che le altezze siano uguali...perchè ogni nodo deve avere 0 o 2 figli...
Codice:
int alt(TreePtr tPtr) {
   int ris1, ris2;
   if (!tPtr ) return 0;

   ris1 = alt(tPtr->lPtr);
   ris2 = alt(tPtr->rPtr);

   if(ris1 != ris2 || ris1 == -1 || ris2 == -1)
      return -1;

   return ris1 + 1; /*ritorno l'altezza aumentata di 1*/
}
In completo devi fare queste altre modifiche:
Codice:
int completo(treePtr tPtr)
{
   int ris1, ris2;
   if (!tPtr ) return 1; /*un albero vuoto è completo ? diciamo di sì*/

   ris1 = alt(tPtr->lPtr);
   ris2 = alt(tPtr->rPtr);
   
   if ((ris1 == (ris2 + 1) || ris1 == ris2) && ris1 != -1 && ris2 != -1)
      return 1;

  return 0;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Dopo l'atterraggio, il razzo spaziale ci...
Godox lancia due accessori per fotografi...
Nova Lake-S da 28 core a 296 W: pi&ugrav...
Adobe Firefly rende disponibili per tutt...
Si torna a lavoro, e torna disponibile E...
PlayStation 6 e Xbox Project Helix verso...
Oltre un terzo delle pagine web pubblica...
Bosoni e fermioni nella stessa goccia: i...
Guerra alle targhe polacche: diventer&ag...
LinkedIn, oltre un milione di utenti ha ...
Odissea oltre 1,34 miliardi: nessun viet...
Il robot impara gesti osservando per poc...
Windows 11, chi ha rotto i giochi? Micro...
Golden Axe diventa una serie animata com...
HyperX presenta Cloud Alpha Air, le prim...
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: 05:36.


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