2010-01-02 2 views
2

l'autre jour, je ne pouvais pas me exprese correctement et obtenir fermé ma réponse, donc voici mon deuxième coup:application DAG

Je dois créer une application DAG (graphe acyclique orienté) de base, mis en mots, une application basée sur un nœud. Je n'ai pas besoin d'une interface graphique pour nw, juste un exemple de console, qui exécute l'arbre entier.

voici ce que j'ai jusqu'à présent:

typedef struct Node 
{ 
    int type; 
    void (*excecute)(); //the callback function 

    struct Node *ins; 
    struct Node *outs; 

    } 

//some functions 

void root(float n,float *buffer) 
{ 
buffer[0]=sqrtf(n); 
} 

void sum(float a, float b, float *buffer) 
{ 
    buffer[0]=a+b; 
} 

void Output_screen(float val) 
{ 
printf(""The DAG output is: %f ", val); 
} 

Les noeuds peuvent avoir un certain nombre d'entrées et une umber des sorties (comment puis-je les gérer?)

Ma question est: Comment faire Je construis un DAG avec la sortie d'un noeud somme soit l'entrée d'un noeud racine et cette sortie soit l'entrée du noeud Output_screen?

Node (somme) ---> Noeud (racine) ---> Noeud (Output_screen)

Je précier toute aide, puisque je could'nt trouver Tut sur elle

+0

Je pense que ce serait plus facile si votre graphique est une collection d'arêtes plutôt que de nœuds. – Stephen

Répondre

0

Ce dont vous avez besoin est une copie de Knuth. Je ne peux pas le recommander assez fortement pour le lire afin d'en apprendre plus sur ce type de structure de données de base. En outre, vous pouvez utiliser des listes chaînées pour représenter les listes de nœuds. Si vous êtes en C++, vous pouvez également utiliser les vecteurs STL de pointeurs.

+0

Salut, merci beaucoup pour votre réponse, mais qu'est-ce que Knuth? si c'est un livre, pourriez-vous me fournir le nom complet pour google pour cela? Aussi, je dois coller avec C, pas C++ merci – Raul

+0

'L'art de la programmation informatique' http://www.amazon.com/Art-Computer-Programming-Volumes-Boxed/dp/0201485419/ref=sr_1_1 ? = = UTF8 & s = livres & qid = 1262624312 & sr = 8-1 – bmargulies

+0

Merci beaucoup! Est-ce un livre très intéressant et incontournable ... mais je suis toujours dans le besoin d'une réponse ... Comment pourrais-je déclencher l'exécution de l'arbre des noeuds? – Raul