Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
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


Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
Xbox Cloud Gaming si espande e arriva su...
Il riconoscimento facciale con IA per co...
MacBook Ultra: il nuovo design arriver&a...
Gli utenti passano più tempo su Instagra...
L'AI sta facendo guadagnare miliardi anc...
L'Odissea di Nolan rilancia Assassin's C...
Russia vieta il mining di criptovalute a...
Lenovo sta preparando il lancio di un Go...
L'intelligenza artificiale colpisce dove...
Xiaomi, si prepara ad aggiornare la fasc...
Rincari in arrivo per gli iPhone: i nuov...
Le edizioni fisiche dei giochi per PlayS...
Aziende IA comprano migliaia di libri ac...
L'IA frena gli utenti di Reddit: azioni ...
Questi pannelli solari non producono sol...
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: 01:35.


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