View Full Version : [ADT]Albero Binario
Chi è che mi puo dare un aiuto a capire come scrivere un albero binario in C++???
Tnk 3E8
Originariamente inviato da Luc@s
Chi è che mi puo dare un aiuto a capire come scrivere un albero binario in C++???
Tnk 3E8
A scrivere un albero binario o a capire come funziona un albero binario?
Kleidemos
20-09-2003, 18:29
capirlo lo ho capito.
scriverlo.....................è li che mi serve aiuto:(
ma ti serve aiuto per cosa di preciso?
se non hai nemmeno un'idea generale di come strutturare il programma, allora non hai proprio capito come funziona ed è meglio se torni alla teoria
Già ...
Basta sapere che un nodo di un albero binario lo puoi dichiarare come:
typedef struct __node {
struct __node * lparent;
struct __node * rparent;
void * data;
} tree_node;
Il resto o è problema di linguaggio o di teoria.
Kleidemos
20-09-2003, 18:57
ora ho capito.
Tnk.
P.S: ma essendo void posso passargli ogni tipo di dato?
Originariamente inviato da Kleidemos
ora ho capito.
Tnk.
P.S: ma essendo void posso passargli ogni tipo di dato?
Ogni tipo di puntatore ad un dato. Opportunamente castato.
E' chiaro che dovendo considerare puntatori generici void la programmazione della struttura risulta altamente complicata. Se il tuo è un semplice esercizio su alberi binari ti conviene considerare tipi interi, in modo da poter fare assunzioni precise.
Kleidemos
20-09-2003, 19:24
Hai ragione:D
Originariamente inviato da Kleidemos
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
using namespace std;
// Liste bilaterale
typedef struct __node {
__node *dxparent;
__node *sxparent;
void *data;
} Albero;
int find( __node *alb, int data);
int main( )
{
Albero padre, figliodx, figliosx, figlio1dx, figlio1sx;
/* definisco */
padre.data = (int*) 90;
padre.sxparent = &figliosx;
padre.dxparent = &figliodx;
//=================
figliosx.data = (int*) 80;
figliosx.sxparent = &figlio1sx;
figliosx.dxparent = &figlio1dx;
//=================
figliosx.data = (int*) 70;
figlio1sx.sxparent = NULL;
figlio1sx.dxparent = NULL;
system( "PAUSE" );
return 0;
}
int find( __node *alb, int data)
{
// =============
// Che ce metto???
// =============
}
Qua sono arrivato e qua mi fermo..............beata mia ignoranza:cry:
Ti fermi perchè ci sono errori di linguaggio madornali. Inoltre usare quella notazione "Albero" con la 'A' maiuscola è un cattivo stile di programmazione. In C/C++ si suole usare lettere maiuscole per costanti e nomi minuscoli per tutto il resto.
Ripassati bene le strutture e i puntatoei kleidemos ... Senza quelle non andrai da nessuna parte.
struct __node {
...
...
}
non va referenziata con __node, bensì con struct __node.
Programmare una struttura del genera implica che certe cose quanto meno le hai capite...
system("PAUSE");
Strano per uno che afferma di essere un seguace Unix :D
Kleidemos
20-09-2003, 19:53
Originariamente inviato da mjordan
system("PAUSE");
Strano per uno che afferma di essere un seguace Unix :D
abitudini:cry:
Originariamente inviato da Kleidemos
abitudini:cry:
Confessa che tutto il tuo codice è compilato sotto Windows. Non dire che usi Linux solo per fare il figo in giro. system("PAUSE") non è un'abutidine, perchè sotto Linux non compila :D :sofico:
O meglio non gira ... O ti sei scritto un comando PAUSE ad hoc per indirizzare evntuali problemi di portabilità dovute alle abitudini? :D :D :D
Kleidemos
20-09-2003, 21:10
ci sto pensando!
Cmq a me hanno detto che DevC++ è il GCC x Win32.
E che sto installando le gentoozza e mi serve un po di tempo:D
Originariamente inviato da Kleidemos
ci sto pensando!
Cmq a me hanno detto che DevC++ è il GCC x Win32.
E che sto installando le gentoozza e mi serve un po di tempo:D
Chi ti ha detto, ti ha detto male.
Dev-C++ è un IDE per MinGW che è un porting di GCC per Win32.
Ciò non toglie che usano librerie standard diverse :D
maxithron
22-09-2003, 00:06
Inoltre.....
Luc@s e Kleidemos......
Siete la stessa persona...Vi ho beccati, cioè...ti ho beccato!!
maxithron
22-09-2003, 00:24
è un link interessante:
http://www.codeguru.com/algorithms/BinTree.html
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.