`
longgangbai
  • 浏览: 7330954 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于树形结构的一个简单又适用模型

阅读更多

  在以前的web项目中使用菜单结构是以树形结构构件,其中JQuery中treeViewer已经Ext中树形结构等。无论哪种树形结构都一样的。

  树形结构的一个一般的节点必须有名称以及一个可能的父类节点。一个父类节点有一个名称,可能的父类节点。可能的一系列子节点。于是一个点检的模型出来来。

 

 

子节点模型:
 class TreeObject implements IAdaptable {
  private String name; //名称
  private TreeParent parent; //父节点
  
  public TreeObject(String name) {
   this.name = name;
  }
  public String getName() {
   return name;
  }
  public void setParent(TreeParent parent) {
   this.parent = parent;
  }
  public TreeParent getParent() {
   return parent;
  }
  public String toString() {
   return getName();
  }
  public Object getAdapter(Class key) {
   return null;
  }
 }

 

父节点模型:

 

class TreeParent extends TreeObject {
  private ArrayList children;  //自己点集合
  public TreeParent(String name) {
   super(name);
   children = new ArrayList();
  }
  public void addChild(TreeObject child) {
   children.add(child);
   child.setParent(this);
  }
  public void removeChild(TreeObject child) {
   children.remove(child);
   child.setParent(null);
  }
  public TreeObject [] getChildren() {
   return (TreeObject [])children.toArray(new TreeObject[children.size()]);
  }
  public boolean hasChildren() {
   return children.size()>0;
  }
 }

 

在根据相关的父子节点的关系,通过递归之类的算法构建相关的父子关系即可。

分享到:
评论
1 楼 freesea 2010-10-09  
这个用组合模式更好吧

相关推荐

    一个简单的树形结构源代码

    这个简单的树形结构源代码为我们提供了一个基础的JavaScript实现,适用于学习和理解树的概念。然而,实际应用中可能需要更复杂的数据结构,例如支持任意数量子节点的节点,或者具有特定功能(如搜索、插入和删除)的...

    菜单树形结构,支持三级、多级树形结构代码

    在菜单树形结构中,每个节点通常代表一个菜单项,而边则表示父节点与子节点之间的层级关系。这种结构有助于用户直观地理解和操作复杂的菜单系统,特别适用于网站或应用程序的导航菜单。 多级树形结构则是指树形结构...

    jsp两个常用树形结构

    树形结构是一种数据结构,它模拟了自然界中的树状模型,由节点(或称为顶点)和边组成。每个节点可以有零个或多个子节点,没有父节点的节点称为根节点,没有子节点的节点称为叶子节点。在JSP中,树形结构通常用于...

    jQuery文件树形结构菜单(适用springmvc框架)

    zTree是jQuery的一个插件,它具有丰富的配置选项、强大的功能以及友好的API,使得创建和操作树形结构变得简单。在使用zTree前,确保已在项目中引入jQuery库和zTree的相关CSS及JS文件。 接着,我们将这个树形菜单与...

    bootstrap+ztree树形结构

    Bootstrap 和 ZTree 结合使用,可以创建...综上所述,Bootstrap 和 ZTree 的结合,为开发者提供了一个强大而灵活的工具,用于构建功能完善的树形结构组件,适用于各种 Web 应用场景,如后台管理系统、文件目录展示等。

    树形结构数据库设计

    树形结构数据库设计模仿了自然界中的树状模型,每个节点代表一个数据项,可以有零个或多个子节点,而只有一个父节点(根节点除外)。这种结构非常适合表示层级关系,如组织架构、目录结构、产品分类等。在数据库中,...

    Hibernate映射树形结构

    Hibernate可以使用单个表来存储树形结构,通过一个自增的`id`字段以及一个表示父节点的`parent_id`字段来建立层级关系。这种方式简单,但查询效率较低,因为需要递归查询来构建整个树。 2. **adjacency list模型**...

    Android 树形结构列表.rar

    本资源"Android 树形结构列表.rar"包含了一个关于如何在Android应用中实现这种功能的示例。我们将深入探讨相关的知识点。 首先,Android中的树形结构列表通常使用`TreeView`或`ExpandableListView`组件来实现。`...

    树形结构数据库设计.zip

    在这个“树形结构数据库设计.zip”压缩包中,很可能是包含了关于数据结构,特别是树形结构的详细学习资料,如笔记、示例代码、练习题等,以帮助学习者全面理解这一主题。 首先,我们来探讨一下树形结构。在计算机...

    3dsmax模型——树形

    本压缩包包含的“3dsmax模型——树形”显然是一个与3ds Max相关的3D树木模型资源,用于创建逼真的环境场景。下面将详细解释3ds Max在建模树木方面的技术及其应用。 3ds Max中的建模方法多样,对于树木这种复杂的...

    dtree树,简单易懂的树形结构

    它通过构建一个树状模型来表示可能的决策路径及其相应的结果,使问题的解决过程变得直观且易于理解。在数据科学领域,dtree因其易于解释和构建的特点,成为了初学者和专家都喜欢的工具。 **决策树的基本概念** 1. ...

    树形菜单插件

    这是一个轻量级、高性能的组件,它使用Flexbox布局来实现树形结构。Treebeard提供了流畅的动画效果,支持节点的动态加载,以及可定制的节点渲染。开发者可以通过简单的props配置来调整其行为和外观。 4. **Vue.js ...

    安卓树形控件相关-android实现简单的多选结构树勾选父节点全选子节点等功能可以根据自己需要修改.rar

    在这个“安卓树形控件相关-android实现简单的多选结构树勾选父节点全选子节点等功能可以根据自己需要修改”的项目中,开发者提供了一个实现多选功能的树形控件,支持勾选父节点时全选子节点的功能,方便用户快速操作...

    QT界面 树形 列表菜单

    QListWidget虽然主要用于简单的列表展示,但通过自定义项视图也可以实现类似树形结构的效果。而QTreeView则更适用于显示多级、分层的数据,它允许用户展开和折叠节点,更适合于创建树形菜单。 在提供的文件名中,...

    jsp实现树形目录,菜单,算法

    - **动态生成树形菜单**:为了让树形菜单具备动态加载的功能,通常需要后端提供一个接口来获取树形数据,然后前端根据接收到的数据动态生成对应的菜单项。 - 这种方法的好处在于可以显著减少页面的初始加载时间,...

    python关于决策树、高斯朴素贝叶斯、向量机、线性回归模型、非线性回归模型相关知识点及应用

    决策树是一种基于树形结构的机器学习算法,用于分类和回归问题。在Python中,ID3(Iterative Dichotomiser 3)是早期的决策树算法,用于分类任务。ID3算法主要通过计算信息熵来评估特征的重要性,并选择信息增益最大...

    android 树形文件列表

    `ExpandableListView`是一个可扩展的列表视图,支持子项的展开和折叠,适用于简单的树形结构。`TreeView`是Android 11引入的新控件,它提供了更强大的树状布局功能,包括自定义节点图标、拖放操作等。 4. 实现树形...

    zTree树形菜单代码.7z

    zTree是一个基于jQuery的开源项目,它提供了一种简单的方式来创建和管理树形结构的数据。通过zTree,你可以轻松地在网页上展示层次化的信息,如组织结构、目录、分类等。它的主要特点包括: 1. **灵活性**:zTree...

    金融-信用卡欺诈交易预测-约600行(EDA数据探索、逻辑回归、决策树、模型调参、模型评估).zip

    在信用卡欺诈预测中,决策树可以根据特征的重要性构建一棵树形结构,以判断交易是否为欺诈。使用像sklearn库中的`DecisionTreeClassifier`,可以训练决策树模型,并进行剪枝以防止过拟合。 6. **模型调参**:为了...

Global site tag (gtag.js) - Google Analytics