问题标签 [tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1019 浏览

c# - 你将如何实现?:C# 中的树上有很多规则

我有一个表示 C# 代码的数据结构,如下所示:

...我正在使用简单的词法分析器/解析器组合构建它。我需要遍历树并应用大量规则(超过 3000 条)。规则在遇到树中不同(且相当复杂)的模式时运行。例如,当一个类仅在同一个程序集中实现接口时,就会运行一条规则。

我最初的幼稚实现迭代每个规则,然后每个规则遍历树以查找其特定模式。当然,这需要相当多的时间,即使是少量的源代码。

我想这可以比作防病毒软件的工作原理,识别大量二进制代码上的复杂模式。

你会如何建议使用这种软件?

EDT:只是想补充一下:不,我不会重新实现 FxCop。

谢谢

0 投票
5 回答
3472 浏览

c# - 在c#中实现树管理父子

我正在实现一棵树,将其视为文件夹结构,因此我有一个如下所示的类:

现在我想要的是能够在树上上下走动,所以给定一个根我可以找到一个叶子,给定一个叶子我可以找到根节点。所以每个孩子都需要父母。现在的问题是向树中添加新节点的最佳方法是什么。我过去使用过两种解决方案:

  1. 将 AddChild(Folder) 方法添加到处理添加文件夹的文件夹,并可以设置父级。这个问题是我现在必须锁定我的 Children 集合,这样你就不能绕过这个方法。
  2. 创建我自己的 Children 集合,该集合将获得对实例的引用,因此它可以处理在添加时设置父级。这个问题我必须实现一个新的集合。
  3. 使用在添加或删除项目时具有事件的集合。

我很好奇人们通常使用什么模式,然后是否有人对我的特定用例有任何建议。我正在使用 nHibernate 将我的树持久化到 SQL 服务器。我宁愿不实现自定义集合,因为它需要很多代码才能使它适用于我的应用程序的一小部分。

0 投票
2 回答
2650 浏览

apache-flex - How can I change the size of icons in the Tree control in Flex?

I embed SVG graphics in my Flex application using

and then extending the Tree class with some of my own code, setting the icon upon adding a node to the data provider:

Now I have two things I want to do:

  • use the SVG graphics in multiple places in the app, scaling them to the appropriate size for each appearance, i. e. scale them to a proper icon size when using them in the tree
  • change the size of the icon at runtime, e. g. display a slightly larger icon for selected items or let an icon "pulse" as a response to some event

I read the Flex documentation on the 9-slice scaling properties in the Embed tag, but I think that's not what I want.


Edit:

I unsuccessfully checked the "similar questions" suggested by SO, among others this one:

Flex: Modify an embedded icon and use it in a button?

0 投票
2 回答
50470 浏览

c# - 在c#中遍历对象树

我有一棵由多个对象组成的树,其中每个对象都有一个名称 ( string)、id ( int),可能还有一个相同类型的子数组。我如何遍历整个树并打印出所有的 ID 和名称?

我是编程新手,坦率地说,我很难解决这个问题,因为我不知道有多少级别。现在我正在使用foreach循环来获取根目录下的父对象,但这意味着我无法获取子对象。

0 投票
19 回答
115375 浏览

algorithm - 如何有效地从平面结构中构建树?

我有一堆扁平结构的物体。这些对象具有一个ID和一个ParentID属性,因此它们可以排列在树中。它们没有特定的顺序。每个ParentID属性不一定与ID结构中的 an 匹配。因此,它们可能是从这些物体中出现的几棵树。

您将如何处理这些对象以创建结果树?

我离解决方案不远,但我确信它远非最佳......

我需要创建这些树,然后以正确的顺序将数据插入数据库。

没有循环引用。当 ParentID == null 或在其他对象中找不到 ParentID 时,节点是 RootNode

0 投票
12 回答
14136 浏览

image - 存储大量图像

我正在考虑开发我自己的基于 PHP 的画廊来存储大量图片,可能有数万张。

在数据库中,我将指向图像的 url,但问题是:我知道让它们都位于服务器的同一目录中是不切实际的,因为它会减慢爬网的访问速度,所以,你会怎么做全部存储?某种基于 jpeg/png 名称的树?

你会向我推荐什么分割图像的规则?

(它将专注于在cheapo dot coms 中使用,因此不可能与服务器发生冲突)

0 投票
3 回答
4359 浏览

svn - 在 Linux 上,哪些 Subversion 工具具有用于浏览分支历史的树形视图(如 Cervisia 中的)?

我的公司正在从 CVS 迁移到 SVN。使用 CVS,我为每个生产版本(现在是 svn 副本)创建了分支,并将有限的补丁应用于分支以解决关键问题。我们使用 Cervisia 作为其分支历史的树形视图。Linux 上是否有一个 GUI 工具可以为 SVN 显示类似的树?

0 投票
1 回答
1594 浏览

apache-flex - 将 Flex Tree 控件绑定到存储在数据库中的树的最佳方法是什么?

我有一个本地 SQLite 数据库,其中包含一棵树(作为嵌套集)。在 AIR 应用程序中,我想在树控件中显示该树,并提供更改节点名称和复制、移动、添加或删除节点的方法。

现在,我有点想把代码放在哪里。显然,我有一个类将对数据库执行加载/更新/插入/删除等操作。这会将整个树加载到某个存储变量中,并将用户所做的更改保存回数据库。

此类应该是 dataProvider、dataDescriptor 还是 Tree 控件本身的扩展?当用户请求添加节点等操作时,应该更新dataProvider并让数据库处理程序对事件做出反应,还是应该调用数据库处理程序的方法然后更新dataProvider?我会说后者更好,因为如果 db 查询出现问题,不更新 Tree 的数据会更容易。

在 DefaultDataDescriptor 和 Tree 类中有添加和删除节点的方法(后者中的受保护方法),我应该使用/扩展它们还是忽略它们?

我对此感到困惑的原因是,根据文档,树控件使用存储在其“dataDescriptor”属性中的对象来解析和操作存储在其“dataProvider”属性中的实际数据。

这似乎是有道理的,直到您意识到除非您对它进行子类化,否则操作数据的绝不是 Tree 控件(如果启用了拖放,则除外),也不是 dataDescriptor。相反,在所有示例中,操作数据都是通过 dataProvider 对象直接发生的,这会触发 Tree 控件中的事件处理程序。

什么是我没有得到这里?

0 投票
7 回答
27677 浏览

c++ - 'Head First' 风格的数据结构和算法书?

我喜欢关于面向对象设计的 Head First 系列书。这是对该主题的非常温和而有趣的介绍。我目前正在学习数据结构课程,发现我们使用的文本(Kruse/Ryba 数据结构和 C++ 中的程序设计)非常枯燥且难以理解。这主要是由于我认为我自己在数学领域的局限性。

有谁知道以更轻松的风格编写的数据结构文本,带有幽默感,仍然涵盖所有基础知识,如二叉树、B 树和图形?

0 投票
3 回答
7324 浏览

sql - 如何在递归 SQL 查询中查找子树中的所有节点?

我有一个表,它定义了节点之间的子父关系:

如果parentID总是指向一个有效的现有节点,那么这自然会定义一个树结构。

如果parentID是,NULL那么我们可以假设该节点是根节点。

我将如何:

  1. 查找作为给定节点的后代的所有节点?
  2. 查找给定节点下的所有节点到特定深度?

我想将这些中的每一个都作为一个 SQL(我希望它一定是递归的)或两个相互递归的查询来完成。

我在 ODBC 上下文中执行此操作,因此我不能依赖任何供应商特定的功能。

编辑

  • 还没有写表,所以添加额外的列/表是完全可以接受的。
  • 树可能会经常更新和添加;辅助数据结构/表/列是可能的,但需要保持最新。如果您有任何魔法书籍可以进行此类查询,我想知道。

非常感谢。