treenode 相关问题

分层数据结构的基本元素。

TreeView - 节点未展开

我有一个带有多个节点的TreeView,如果删除了特殊节点(您将在代码中看到),则更新TreeView后应展开父节点。 这是我尝试的方法: 公共无效雷莫...

回答 1 投票 0

在 ASP.NET C# 中使用文件填充树视图

我有一个树视图,我正在尝试用文件夹和文件填充它。树视图可以很好地填充文件夹,但不能填充文件。这是我的代码: protected void Page_Load(对象发送者,

回答 2 投票 0

如何使用 LINQ Flatten() 展平一棵深树

我有一个泛型类型树类,如下所示: 公共类 TreeNode { 私有只读T_data; 私有只读TreeNode _parent; 私有只读列表 我有一个通用类型树类,如下所示: public class TreeNode<T> { private readonly T _data; private readonly TreeNode<T> _parent; private readonly List<TreeNode<T>> _children; private readonly int _level; public int Level { get { return _level; } } public int Count { get { return _children.Count; } } public bool IsRoot { get { return _parent == null; } } public bool IsLeaf { get { return _children.Count == 0; } } public T Data { get { return _data; } } public TreeNode<T> Parent { get { return _parent; } } public TreeNode(T data) { _data = data; _children = new List<TreeNode<T>>(); _level = 0; } public TreeNode(T data, TreeNode<T> parent) : this(data) { _parent = parent; _level = _parent != null ? _parent.Level + 1 : 0; } public TreeNode<T> this[int key] { get { return _children[key]; } } public void AddChild(TreeNode<T> value) { _children.Add(value); } public TreeNode<T> GetChild(int key) { return _children[key]; } public void Clear() { _children.Clear(); } } 我想在此类中创建一个函数来展平所有嵌套的子列表,无论树有多深。返回值将是 TreeNode 的列表。该函数可以在任何节点上使用,无论它是否是根节点。 我尝试使用 LINQ Flatten() 解决方案,但它似乎只返回第一级。如何使用(或不使用)LINQ 设计 TreeNode 类中的函数,以便无论节点是什么类型我总是可以返回这样的列表? 您可以创建枚举器函数来枚举节点的所有子节点。以下是如何操作的示例: public IEnumerable<TreeNode<T>> EnumerateChildrenRecursive() { foreach (var child in _children) { yield return child; foreach (var subItem in child.EnumerateChildrenRecursive()) { yield return subItem; } } } 转换为列表会很简单: var list = root.EnumerateChildrenRecursive().ToList(); 我不确定这个Flatten()方法是什么,它不是内置方法。 但是你需要遍历这棵树。我的典型方法是采用与 LINQ 相同的扩展方法: public static IEnumerable<T> DepthFirst<T>(T self, Func<T, IEnumerable<T>> selector) { var stack = new Stack<T>(); stack.Push(self); while (stack.Count > 0) { var current = stack.Pop(); yield return current; foreach (var child in selector(current)) { stack.Push(child); } } } 您需要在节点类上公开您的子级的 IEnumerable: public class TreeNode<T> { ... public IEnumerable<TreeNode<T>> Children => _children } ... var allNodes = myRootNode.DepthFirst(n => n.Children); 您可以通过将堆栈更改为队列来将迭代顺序更改为广度优先。 这要求树实际上是树而不是图。如果 TreeNode 将自身作为子节点,则返回的 IEnumerable 将无限长,并且您可能会遇到堆栈溢出。为了防止这种情况,您可以添加已访问节点的列表,以防止多次访问同一节点。

回答 2 投票 0

为Jtree中的每个节点设置图标

我想为 JTree 组件中的每个节点设置不同的图标。我使用 while 循环从数据库加载每个节点。我将每个图标设置为根、叶或父级。我将它们设置如下: 阿尔...

回答 2 投票 0

WinForm TreeView 节点为空,尽管有一个数据源到对象关系列表

在我的 Telerik WinForms 应用程序中,我可以通过对象关系绑定将 TreeView 绑定到应用程序中的 Well 对象,如下所示: this.wellTreeView = new RadTreeView(); 绑定列表<...

回答 2 投票 0

在SQL中查找树节点

您好,最近在 Uber 上问了一个 sql 问题,这非常有趣,但也有点难。 问题如下 表:树 +-------------+------+ |栏目名称 |类型 | +-...

回答 3 投票 0

TTreeView:如何仅选中/取消选中 TTreeNode 中的子级?

Windows 10、德尔福 11。 我只想为带有复选框的单个 TTreeNode 的子节点设置 .Checked 。这是 TreeView 中的默认行为。但下面的代码也选择了所有兄弟姐妹(o...

回答 1 投票 0

C# WinForms 在树视图没有焦点时突出显示树节点

我正在制作一个界面来编辑游戏场景。基本上它由具有嵌套条件和操作的事件组成。因此,我计划使用两个树视图 - 一个用于选择事件,...

回答 6 投票 0

我不断收到错误条件“!is_inside_tree()”为真。返回:Transform3D()

当玩家点击时,我试图通过信号将 3D 相机(位于玩家场景中)的位置和方向传递到世界场景,以产生具有该方向和 po 的子弹...

回答 1 投票 0

Partykit CTREE 问题:如何对每个终端节点内的观测值进行子集化(包括不属于 CTREE 的变量)

我需要一些关于我的代码的帮助。这是我第一次发帖,所以长度请原谅。 概述:我进行了 CTREE 分析,以识别与

回答 1 投票 0

如何等待树节点完全展开

环境:(“@角度/核心”:“~7.1.0”,“角度树组件”:“^8.0.1”) 问题是我正在过滤子节点,但对于某些节点...

回答 1 投票 0

使用字符串数组的Typescript过滤TreeNode

我有带子节点的treenodes,我想用字符串数组过滤它。这是树节点的结构:let books = [{代码:'CHEM',键:1,子级:[{... ...>

回答 1 投票 0

更新GTK#中的NodeView单元

如何通过键盘输入文本并触发Edited事件后,如何使NodeView单元格保留输入的值?每当我在单元格中输入一些文本并尝试确认更改时,...

回答 1 投票 0

TreeView添加和排序

我在Autodesk Revit中对treeView进行了排序,我希望在Windows窗体中以相同的方式显示它。目前,我能够按照在Revit(打印日志)中的样子提取它,但是我无法显示...

回答 1 投票 1

使用辅助函数创建树函数

对于类,我们被要求创建一个二进制搜索树。一个小问题是我们的帮助器函数不是标头类的一部分,因此,当我尝试使用创建的帮助器函数添加到...

回答 1 投票 0

[C#填充数据源或项目的数据

我有20个属性的公司对象。我想将数据填充到树视图,公司ID,公司名称和父ID。我不使用实体框架。我应该查询公司表中的所有列吗?...

回答 1 投票 1

在Java中构建字符串的二进制搜索树

我正在尝试构建一棵字符串树,但是似乎遇到了一些我不确定如何解决的问题。公共静态TreeNode buildTree(TreeNode t,String s){int size = s.length(); ...

回答 2 投票 0

二叉搜索树删除节点功能

当我尝试删除仅具有正确子节点的节点时,我的删除功能不起作用。当节点仅具有左子节点或具有左和右节点时,它可以工作。我想知道这是否是对...

回答 1 投票 0

当用户将鼠标悬停在TreeView控件的特定TreeNode控件上时显示不同的光标

我要求表单的光标更改为光标Cursors.Hand,当用户将指针悬停在具有特定名称的父节点的节点上时。我在执行此操作时遇到的问题是...

回答 1 投票 0

Java JTree获取选定节点的名称

我想找出如何获取JTree中选定节点的名称,而不是如何获取treeNode文本的userObject的名称。我已经手动创建了几个树节点,我需要确定...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.