2

前几天我无法正确地表达自己并得到关闭我的答案,所以这是我的第二个镜头:

我需要创建一个基本的 DAG(有向无环图)应用程序,使用常用词,一个基于节点的应用程序。我不需要用于 nw 的 GUI,只需一个控制台示例即可执行整个树。

这是我到目前为止所拥有的:

 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);
}

节点可以有任意数量的输入和任意数量的输出(我如何处理它们?)

我的问题是:如何构造一个 DAG,其中节点总和的输出是节点根的输入,而输出是节点 Output_screen 的输入?

节点(总和)---> 节点(根)---> 节点(输出屏幕)

我会感谢任何帮助,因为我在上面找不到任何 tut

4

1 回答 1

0

您需要的是 Knuth 的副本。我不能强烈推荐阅读他来了解这种基本数据结构。

除此之外,您可以使用链表来表示节点列表。如果您使用 C++,您还可以使用 STL 指针向量。

于 2010-01-02T21:21:55.297 回答