jjzjj

TreeNode

全部标签

c# - 用什么集合来存储树结构?

我想在集合中存储组织结构图。我认为树数据结构最适合我的需要,因为我需要将多个节点添加到一个节点。LinkedList仅提供将一个节点添加到另一个节点,如果我理解正确的话。我查看了C5treeset集合,但它似乎没有Add()方法可以将超过2个节点添加到一个节点。我还查看了Windows窗体库中的Treeview类,但我不想将Windows窗体dll添加到我的项目中,因为我正在构建服务层应用。(或者还好吗?)我不想编写自己的树集合类,如果第3方已经提供了一个?有什么建议吗?谢谢 最佳答案 像这样的事情可以作为一个起点。通过使用泛型,这

c# - WinForms TreeView 检查/取消检查层次结构

以下代码旨在根据需要递归检查或取消检查父节点或子节点。例如,在这个位置,一个,G,L,和电话如果我们取消选中其中任何一个节点,则必须取消选中它们。以下代码的问题是,每当我双击任何节点时,算法都无法实现其目的。树搜索算法从这里开始://stackisusedtotraversethetreeiteratively.Stackstack=newStack();privatevoidtreeView1_AfterCheck(objectsender,TreeViewEventArgse){TreeNodeselectedNode=e.Node;boolcheckedStatus=e.Node

c# - 在使用拖放时,我可以使 Treeview 展开用户悬停在其上的节点吗?

简述:.Net2.0中是否有任何内置函数可以在拖放操作正在进行时将鼠标悬停在TreeNode上?我在VisualStudio2005中使用C#。更详细:我已经使用多级、多节点树(想象组织结构图或文件/文件夹对话框)填充了一个Treeview控件,我想使用拖放操作在树中移动节点。拖放代码运行良好,我可以拖放到任何可见节点上,但是我希望我的控件在将文件拖到文件夹Pane上时表现得像Windows资源管理器一样。具体来说,我希望每个文件夹在悬停1/2秒左右时打开。我已经开始使用Threading和Sleep方法开发一个解决方案,但我遇到了问题,想知道是否已经有了一些东西,如果没有,我会努力学

c# - Winform Treeview 通过标签查找节点

我有一个TreeView,其中显示成员可能有重复项,而标签不会。示例:TreeNodenode=newTreeNode(itemName);node.Tag=itemID;//uniqueIDfortheitemtreeView1.Nodes.Add(node);因此,在搜索时,我知道我可以使用itemName进行搜索treeView1.Nodes.Find(itemName,true);但是我怎样才能通过标签进行搜索呢?treeView1.Nodes.Where没有定义,所以我没有linq:(关于如何按标签搜索有什么建议吗?:)谢谢! 最佳答案

c# - 从数据库填充 TreeView

我有一个数据库表(名为主题),其中包括以下字段:主题编号姓名父级通过使用它们,我想在C#中填充一个TreeView。我该怎么做?提前致谢... 最佳答案 大概是这样的吧。如果您需要更多信息,请详细说明您到底想做什么。//InPageloadforeach(DataRowrowintopics.Rows){TreeNodenode=newTreeNode(dr["name"],dr["topicId"])node.PopulateOnDemand=true;TreeView1.Nodes.Add(node);}///protected

C#:如何避免在双击事件中发生 TreeNode 检查

所以我在C#Windows窗体应用程序中有一个TreeView。我需要的是一些节点被“锁定”,这样它们就不能根据参数被检查(或取消检查)。我现在做的是这样的:privatevoidtv_local_BeforeCheck(objectsender,TreeViewCancelEventArgse){TNodenode=(TNode)e.Node;//ifapartnode,canceltheaction.if(node.Type=="Part"){e.Cancel=true;}//ifalockednode,canceltheactionif(node.Locked==true){e.

算法刷题笔记

特定方法KMP算法:字符串匹配逆波兰表达式:计算值斐波那契数:动态规划强制类型转换:整型->字符串:to_string,字符串->整型:stoi一、数组数组:下标从0开始,内存地址空间连续(所以数组元素只能覆盖,不能删除),C++中二维数组地址也连续vector:底层是数组,但本身是容器,内存也是连续的,与数组不同的是,vector可以动态扩展1.二分查找(704)二分查找的前提:数组有序且无重复元素二分查找关键点是循环不变原则,即while循环中每次边界处理坚持根据区间定义classSolution{public:intsearch(vector&nums,inttarget){intlef

使用 TreeNode 而不是链表的 Java 8 hashmap 实现

根据这篇文章:http://coding-geek.com/how-does-a-hashmap-work-in-java/java8hashmaps使用树节点而不是链表(如在java7中)作为数组的元素。TreeNodes有一个特殊的性质,当元素个数少的时候,就相当于链表;如果元素个数多,就相当于红黑树。(因为涉及红黑树的操作是log(n))。但是,这是否要求键是可比较的或存在键的某种排序?这是在java8hashmap中强制执行的吗?如果键是可比较的(存在键的顺序),它会只使用红黑树吗? 最佳答案 Willitonlyusere

java - 如何获取JTree中当前节点的深度?

我有一个包含一些节点和子节点的JTree。当我点击一个节点时,我想知道它在哪个深度(0、1、3)。我怎么知道?selected_node.getDepth();不返回当前节点的深度.. 最佳答案 您应该使用getLevel。getLevel返回此节点上方的层数——从根到此节点的距离。如果此节点是根节点,则返回0。或者,如果出于某种原因您已经获得了Treenode[]路径(使用getPath()),那么它就足够了该数组的长度。getDepth不同,因为它返回以该节点为根的树的深度。这不是您想要的。

java - 无法将列表转换为 Java 泛型中的列表错误

以下是我简化的图形实现importjava.util.ArrayList;importjava.util.List;publicclassTreeNode>{privateEdata;privateList>children;publicTreeNode(Evalue){data=value;children=newArrayList();}publicEgetData(){returndata;}publicvoidsetData(Edata){this.data=data;}publicList>getChildren(){returnchildren;}publicvoidset