PDA

View Full Version : [ADT]Albero Binario


Luc@s
20-09-2003, 17:00
Chi è che mi puo dare un aiuto a capire come scrivere un albero binario in C++???


Tnk 3E8

mjordan
20-09-2003, 18:09
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:(

ri
20-09-2003, 18:40
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

mjordan
20-09-2003, 18:43
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?

mjordan
20-09-2003, 19:17
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.

mjordan
20-09-2003, 19:21
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

mjordan
20-09-2003, 19:28
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.

mjordan
20-09-2003, 19:32
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...

mjordan
20-09-2003, 19:48
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:

mjordan
20-09-2003, 20:38
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:

mjordan
20-09-2003, 20:40
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

mjordan
20-09-2003, 21:27
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