是否有与子树对应的节点的特定名称?

时间:2008-09-17 19:38:37

标签: data-structures naming-conventions tree class-design naming

我正在设计一个网站导航层次结构。它是节点树。节点代表网页。

树上的一些节点很特殊。我需要一个名字。

有多个这样的节点。每个子树都是子树的“根”,页面具有不同的徽标,样式表或布局。想想不同的部门。

site map with color-coded sub-trees http://img518.imageshack.us/img518/153/subtreesfe1.gif

我应该为这种类型的节点命名什么?

6 个答案:

答案 0 :(得分:6)

Root(具有子节点但没有父节点的节点),Node(具有子节点和父节点的节点)和Leaf(没有子节点和父节点的节点)如何?

然后,如果需要,您可以通过树结构(例如DepartmentRoot,DepartmentNode,DepartmentLeaf)中的名称和位置进行区分。

更新以下来自OP的评论

看看你的问题,你说“有些”是特殊的,在你的图表中,你有不同的节点在不同的层次上看起来不同。节点的设计可能不同,您可以通过多种方式构建树结构。例如,一个抽象类可以拥有子节点,如果没有子节点,它是一个叶子,如果没有父节点,它是一个根,但是它可以在其生命周期中改变。或者,一个固定的类结构,其中叶子是不能以任何方式添加子项的特定类类型。

如果您的设计不需要根据位置(相对于根)区分节点,则表明您有一个用于它们的抽象类。

在这种情况下,它提出了一个问题,它有何不同?

如果它与其他地方的标准节点完全相同,但有一些样式, StyledNode 怎么样?你甚至需要它是独立的(没有风格==没什么大不了,它没有呈现)。

由于我不知道如何构建树的机制,因此在命名时可能会考虑几个因素。

答案 1 :(得分:2)

您要找的是“部分”。它是整体的一部分,里面也有相同的东西。

所以,你有节点,它有子节点和父节点,你有SectionNodes这些特殊子树的根。

答案 2 :(得分:1)

PageTemplate 如何体现其子女拥有自己的布局,CSS等的事实?

答案 3 :(得分:1)

AreaNode

答案 4 :(得分:1)

所以,听起来你正在收集类别。节点是此类别的入口点。那么“TopCategoryNode”,“CategoryEntry”然后对于som来说,是什么呢?或者,如果你想分成更多,比如“CategoryCSS”,“CategoryLayout”等等?

这是一种通用的,但你明确指出存在“类别”,并且它们包含多个子节点或子主题。

答案 5 :(得分:1)

分行?

保持树的类比,并在这种情况下提示部门等

考虑类heirarchies,Root可能是Branch的一个特例,这是Node的特例,Leaf的特例。分支/节点的区别是您可以根据自己的特殊情况制作的。