什么是计算节点?

时间:2018-03-29 03:00:39

标签: c#

我知道这可能是一个非常少年的问题,但是我在C#中学习链接列表,并且他们不断引用节点,我在某种程度上直观地了解节点,但我从来没有得到过对节点究竟是什么的正式解释,特别是在这种情况下,有人能给我一个关于中等简单英语节点定义的概述吗?

我已经读过这个:https://msdn.microsoft.com/en-us/library/microsoft.computecluster.node(v=vs.85).aspx但它并没有多大帮助,因为它使用了我还不太了解的其他概念/术语。

谢谢!

2 个答案:

答案 0 :(得分:9)

获取白板。

画出一堆盒子。

将它们连接在一起。

也许在方框和线条中加上一些标签。

也许在线上放一些箭头。

您绘制的内容称为“图形”。图形由节点 - 框 - 和组成,它们将它们连接在一起。节点有时也称为“顶点”。

几乎表示数据的每个问题都会减少到某种图形。

您想找到城市之间的最佳路线吗?制作一个图表,其中节点是城市,边缘是道路,问题是“这两个节点之间边缘的最短路径是什么?”

您想设计一个数据中心吗?将其设计为图形,其中节点是计算机,边缘是连接它们的网络电缆。

等等。

链表只是一个非常非常非常的简单图表。链表只是一个图表:

  • 每个链接列表都有一个名为“empty”的节点,或者“null”,它具有零输出边。
  • 链接列表中的每个非空节点都有一个传出边
  • 链接列表中的一个节点没有任何传入边
  • 从节点到自身没有路径。 (AKA“非循环”)

所以

1 --->  2 ---->   3 ---->   empty

是一个链表,其中1,2,3,空是节点,边缘用箭头表示。请注意,这符合链表的定义;空没有外出箭头,1没有传入箭头,每个其他节点有一个传出箭头和一个传入箭头。

现在想象放宽链表的条件。

一个非循环图,其中只有一个节点具有零输入边(称为根),而每个其他节点只有一个输入边称为“树”。每个链表都是一棵树,但不是每棵树都是一个链表:

   1 
 /   \
 |   |
 v   v
 2   3

这是一棵树,但不是链表。

如果我们考虑没有周期的图形,但也没有限制我们可以添加的边缘,那么我们有一个有向无环图或DAG。每棵树都是DAG;不是每个DAG都是树。例如:

 1         2 --->  3   <----  4

是DAG,但不是链接列表或树。

等等。图论是一个巨大的学科,是计算机科学的基础。就像我说的那样,表示数据的几乎所有问题都可以被认为是某种图形,所以“节点”的概念在编程中到处都是

答案 1 :(得分:1)

Node中的

LinkedList只是字节/位(内存块)。它由两部分组成:

数据 - 链表的每个节点都可以存储数据。

地址 - 链接列表的每个节点都包含一个到下一个节点的地址,名为&#34; Next&#34;。

链接列表的第一个节点由名为Head的指针引用。

阅读article-1&amp; article-2了解有关链接列表及其在C#中的实现的更多详细信息。