摘要: 当具有树形结构的数据的结点很多而且树的深度比较大时,直接用递归遍历明显能发现性能很低。因此,不要一次全部加载,而是当用户点击展开时才加载此结点下的子结点。实现要点:每加载添加一个结点时,判断该结点是否为叶子(即不含子结点),若包含子结点,先添加一个空的子节点,这样做主要是让用户在界面能看到“+”表示结点能展开。当用户点击“+”时触发treeView_AfterExpand事件,在该事件中处理添加子结点数据,添加之前,清理删除掉以前的结点。public partial class MainForm2 : Form { public MainForm2() { InitializeComponen 阅读全文
posted @ 2011-03-31 15:29 霜天雪舞 阅读(2339) 评论(0) 推荐(1) 编辑
摘要: 最近做项目经常用到递归,刚开始很久没用,不太熟悉,现在研究了下,并写下了学习笔记及开发经验总结。递归热身一个算法调用自己来完成它的部分工作,在解决某些问题时,一个算法需要调用自身。如果一个算法直接调用自己或间接地调用自己,就称这个算法是递归的(Recursive)。根据调用方式的不同,它分为直接递归(DirectRecursion)和间接递归(IndirectRecursion)。比如,在收看电视节目时,如果演播室中也有一台电视机播放的是与当前相同的节目,观众就会发现屏幕里的电视套有一层层的电视画面。这种现象类似于直接递归。如果把两面镜子面对面摆放,便可从任意一面镜子里看到两面镜子无数个影像, 阅读全文
posted @ 2011-03-31 15:27 霜天雪舞 阅读(2736) 评论(0) 推荐(1) 编辑