`
SwiftHorse
  • 浏览: 213638 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

面试作业——无限极树的实现

阅读更多

  我表弟计算机大四即将毕业,这几天在这边找工作,面试要求显示无限极树,树目录下挂有图片文件,点击目录可显示图片文件。表弟实践经验不足,在学校学的都是些理论,对算法与数据结构了解的也甚少,搞了一天没有个结果。晚上只能由我操刀来完成面试作业,以便让表弟通过面试,以后再慢慢引导他学习。现在的大学生真的需要加强自己能力培养,无语。

  现贴上无限极树的代码(采用递归算法实现),供后来者学习,这是很多应用中都用到的东东,但我追求代码简洁。程序功能说明:通过递归动态在控件treeView中生成目录树,给treeView的Tag属性赋值,是为了点击节点时再做其他的应用;

private void Form1_Load(object sender, System.EventArgs e)
  {
   TreeNode node = new TreeNode();   //这里是创建一个根节点
   node.Text = "根结点";
   treeView1.Nodes.Add(node);
   node.Tag = 0;//给根结点赋值0;
   CreateChildTree(node, 0);    //调用创建树的方法
   treeView1.ExpandAll();
  }
  

protected void CreateChildTree(TreeNode parentNode, int parentID)        //创建树
  {
   string myConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb";
   string mySelectQuery = "select * from t_nodes where p_id = " + parentID;
   myConnection = new OleDbConnection(myConnString);
   OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
   myConnection.Open();
   OleDbDataReader myReader;

   myReader = myCommand.ExecuteReader();  

   while (myReader.Read())
   {
    TreeNode myNode = new TreeNode(myReader["name"].ToString());
    myNode.Tag = myReader["id"];
    parentNode.Nodes.Add(myNode);
    CreateChildTree(myNode,(int)myReader["id"]);  //递归显示出子节点
   }
   myReader.Close();
   myConnection.Close();
  }

分享到:
评论
7 楼 SwiftHorse 2007-06-25  
blu3leaf 写道
晕~~这个无限级树 loading都等死你,建议学习微软的做法,只加载当前节点的同级节点 和 子节点,然后展开事件里 再递归 同级 和子节点
  这是面试作业!采用XML的方式来处理树,我几年前已经在项目中是这样做了,谢谢提醒,多交流,哈哈。
6 楼 blu3leaf 2007-06-20  
晕~~这个无限级树 loading都等死你,建议学习微软的做法,只加载当前节点的同级节点 和 子节点,然后展开事件里 再递归 同级 和子节点
5 楼 dovecat 2007-04-28  
没看是一个面试小测试吗,搞那么多东西出来干吗.
4 楼 sunshinefly128 2007-04-07  
这个算法要将数据库中的所有节点取出来的时候需要遍历多少次呀!!
个人觉得比较重要的还是使用类似层次码之类的东西来构造树。从数据库中取出来的时候就已经形成了树的结构
3 楼 taowen 2007-04-05  
最近在项目里写了一个LazyLoadingTreeView。有了LazyLoading就可以无限级了。
2 楼 ggyy 2007-04-05  
这个树不可能是无限极的.
1 楼 clingingboy 2007-04-03  
说明其根本就没用过这个控件.就不知道递归了

相关推荐

    Java 无限极 树结构

    下面将详细介绍如何在Java中实现无限极树结构及其相关知识点。 一、树节点类设计 首先,我们需要定义一个树节点类,它通常包含以下属性: 1. 节点ID:标识节点的唯一标识符。 2. 节点名称:节点的名称或内容。 3....

    jquery实现无限极树表格菜单

    **jQuery 实现无限极树表格菜单详解** 在网页开发中,树形结构的展示经常用于组织和层次化数据,如目录、组织架构或层级关系的数据。jQuery 是一个广泛使用的 JavaScript 库,它提供了丰富的功能来简化网页交互。...

    asp.net无限极树的测试

    本文将深入探讨如何使用ASP.NET来实现一个无限极树,并重点讲解如何进行节点的增加、删除和修改操作。 首先,无限极树的核心在于递归地加载和显示数据。在ASP.NET中,我们通常会使用TreeView控件来实现这一功能。...

    asp.net(C#)无限极树实例

    以下将详细介绍如何实现一个ASP.NET(C#)无限极树实例。 1. **无限极树的概念** 无限级树是一种数据结构,它表示一个节点可以有任意数量的子节点,而每个子节点又可以有无限数量的子节点,以此类推,形成无限级别的...

    无限极树形菜单js+.net

    在这个项目中,"无限极树形菜单js+.net" 提供了一种使用JavaScript(js)和.NET技术实现这种功能的方法。以下是对这个主题的详细讲解: 首先,JavaScript是前端开发的主要脚本语言,它负责处理用户的交互和动态更新...

    ASP.net c# 无限极树菜单

    通过研究提供的源代码,开发者不仅可以学习如何实现无限极树菜单,还能掌握ASP.NET和C#在数据绑定、数据库交互以及前端展示方面的技巧,这对于提升Web开发能力非常有帮助。同时,由于项目使用了较旧的SQL Server ...

    递归,无限极评论实现

    在这个场景中,我们关注的是如何利用递归来实现无限极评论的功能。无限极评论通常应用于社交网络、论坛或博客系统,使得用户可以对评论进行回复,形成一个层次分明的评论树。 首先,理解无限级评论的原理。在数据库...

    带复选框的无限极节点树

    这样的资源对于开发者来说是非常有价值的,它可以作为学习和开发此类功能的基础,通过研究源码,我们可以深入理解无限极节点树、复选框和AJAX异步加载的实现原理,以及如何将它们巧妙地结合在一起。 总的来说,"带...

    无限极树的javascript

    对于无限极树的实现,我们可以从以下几个关键知识点入手: 1. **数据结构**:首先,我们需要一个合适的数据结构来存储树的节点。通常,我们会使用对象来表示每个节点,其中包含节点的值、子节点数组以及其他可能的...

    无限极树(c#,javascript,css)

    利用VS2005+Sql2000开发的一个无限级树形菜单,比较简单,实用性比较强 DB_51aspx下为数据库文件,附加即可 数据库连接配置修改DefaultTree.aspx.cs中的SqlConnection con = new SqlConnection("server=(local);...

    css+js 无限极树形菜单

    "CSS+JS无限极树形菜单"就是利用这两种前端技术来创建一个可以无限制扩展层级的树形菜单。下面我们将详细探讨如何通过CSS和JavaScript实现这一功能。 首先,CSS(层叠样式表)主要用于控制网页的布局和样式。在创建...

    C#TreeView多种样式,结合数据库,无限极目录树

    在这个特定的案例中,我们关注的是如何利用C#来实现一个结合数据库的无限极目录树。无限极目录树意味着节点可以有任意数量的子节点,形成了一个无限深度的树形结构。 首先,让我们深入理解`TreeView`控件的基本用法...

    Ztree无限极树

    【Ztree无限极树】是一种基于JavaScript的可扩展的树形菜单组件,广泛应用于Web开发中,用于构建具有层级结构的界面元素。它以其高效、灵活和强大的功能著称,支持无限级节点展开,适用于展示复杂的组织结构或者分类...

    php无限极分类实现的两种解决方法

    reader: 这是自己写的无限极分类实现方法 里面的编辑方法只是对分类名进行了编辑 没有进行移动操作 小弟能力有限忘大家多多包涵啊  第一种方法:CREATE TABLE `types` ( `type_id` int(11) NOT NULL AUTO_...

    EXT2.0 带无限极树的 增删改差 是用jsp+servlet+ext2.0实现的

    在"EXT2.0 带无限极树的 增删改差 是用jsp+servlet+ext2.0实现的"这个项目中,我们将探讨如何使用EXT2.0与后端的Java技术,如JSP和Servlet,协同工作来实现数据管理的基本操作:添加(Add)、删除(Delete)、修改...

    jsOOP无限极多选树

    在“jsOOP无限极多选树”这个项目中,我们探讨的是如何在JavaScript中构建一个支持无限层级并且具备多选功能的树形结构。 首先,我们需要理解树的数据结构。在计算机科学中,树是一种非线性的数据结构,由节点(或...

    JS无限极树形菜单,json格式、数组格式通用示例

    本文介绍的是一种在Web开发中常见的功能——JS无限极树形菜单。无限级树形菜单能够以树状的形式展示多层嵌套的数据,广泛应用于网站的导航栏、资源管理、组织架构等场景中。在本示例中,所实现的树形菜单能够处理...

    C#无限极分类

    C#作为.NET框架的主要编程语言,提供了多种实现无限极分类的方法。下面我们将深入探讨C#中实现无限极分类的关键知识点。 1. 数据库设计: - **自引用表**:通常我们会使用自引用表来存储层级关系,每个类别都有一...

    tp树形无限极分类

    总的来说,"tp树形无限极分类"实例为开发者提供了一个很好的起点,可以帮助他们深入理解无限级分类以及如何在ThinkPHP框架中实现这一功能。对于想要提升PHP Web开发技能,特别是对数据库设计和MVC模式应用的开发者来...

    通用无限极下拉菜单的实现代码

    通用无限极下拉菜单的实现是一种常见的前端技术,主要应用于网站导航栏的构建,以提供层次清晰、操作便捷的用户体验。下面我们将详细探讨如何实现这样一个功能,并介绍其核心特点。 首先,我们需要了解下拉菜单的...

Global site tag (gtag.js) - Google Analytics