Newsgroup: it.comp.lang.c++
Titolo: Albero Ordinato e Grafo

Vi pongo due domande:
1- Per esercizio devo gestire un albero ordinato, cioč, un albero che puň 
avere piů di due figli.
   Mi dite come posso realizzarlo? Per caso utilizzando degli array? Qualche 
esempio a tal proposito?
2- Mi sapete consigliare dei link che spieghino come implementare un grafo 
con matrici di adiacenza?
Grazie anticipatamente 

 avere piů di due figli.
Non e' detto che un albero con piu' di due figli sia ordinato. Per
generare un albero puoi fare qualcosa del tipo:
struct Nodo {
    struct Nodo *left;
    struct Nodo *right;
    int info;
}
quindi in base all'elemento che devi inserire vai a dx od a sx
int insert (int info) {
    if (root == 0) { //ipotizzando root come radice dell'albero
        root = new Nodo;
        root->left = 0;
        root->right = 0; 
        return 1;
    }
    else {
        while (1) {
        Nodo *tmp = root;
        if (tmp->info <= info) {
            if (tmp->left == 0) {
                tmp->left = new Nodo;
                tmp = tmp->left;
                tmp->info = info;
                tmp->left = 0;
                tmp->right = 0;
                return 1;
            }else {
                tmp = tmp->left;
           }
       }else {
           //Analogo a sopra MA PER RIGHT
       }
    }
    }
}
Ho scritto il codice di getto ma spero di averti dato un'idea.
PS : Ho supposto che tu intendessi un albero binario
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

> PS : Ho supposto che tu intendessi un albero binario
Grazie per avermi risposto.
Sul libro che ho io, viene fatta una distinzione tra albero binario e albero 
ordinato.
Con l'albero ordinato non si intende ordinare i nodi, ma si intende 
quell'albero che puň essere composto anche da piů di due figli.
E' questa l'ipotesi che non so implementare... 

 con matrici di adiacenza?
no, non conosco links, conosco qualche buon libro.
Tommy

 E' questa l'ipotesi che non so implementare...
e questo libro non dice come implementarlo?
Ad ogni modo non ho mai sentito dire ordinato per intendere con un numero
non definito di figli.
Mi pare di aver sentito invece il termine generalizzato.
Ad ogni modo, in teoria, solo "albero binario" indica un albero i cui
puntatori ai figli sono due.
Tommy

 puntatori di cui il 99.9% a NULL.
per implementare un albero generico, senza sapere quanti figli ha un nodo:
struct Node{
    Node* child;
    Node* sibling;
    int val;
};
in questo modo ogni nodo ha un puntatore al primo figlio (quindi scendendo 
di un livello) e un puntatore al "fratello" che sta alla sua destra
-- 
Pela 

 di un livello) e un puntatore al "fratello" che sta alla sua destra
si, e' vero, questo e' un'altro modo.... e' buffo come certe cose le si
studia e poi, fino a che non ricapitano ci se le scorda (o per lo meno non
sono li fresche in mente).
Tommy


Complimenti, molto elegante.
Questo è il sitema (molto semplificato) con cui all'interno del Linux kernel
si tengono i riferimenti tra le struct che definiscono i vari processi
attivi ( struct task_t ).
Ciao,
FabioMDF
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Ho del codice con delle implementazioni in c++ di strutture usate nell'esame 
di Algoritmi e Strutture Dati.
Puoi scaricare il file zippato dai qui:
www.fancysoft.it/download/Cplusplus_ASD.zip
Ciao 

 ha scritto nel messaggio 
news:%Nvdd.172161$35.82...@news4.tin.it...
