- 浏览: 257126 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
rdsgf:
也就是导出。。。如何把生成的图片导出到本地,有没有接口?
报表 charts4j -
rdsgf:
你好,请问生成的图片如何保存到本地?
报表 charts4j -
刘焕杰:
楼主,为啥放进去后,我下载的中文文件名还是乱码呢?
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题 -
814687491:
Ext Panel 动态 加载 html -
yxyysu:
下载之后使用了,没有解决上传时中文名字乱码问题,请博主指导。
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题
最近在生成Ext的树型结构是,要用递归的算法来实现从数据库中读取出对应的json数据结构
在 网上找到一个不错的算法。一起来分享下:
上面的节点结构为:
上面的算法简单。主要就是要有要遍历的节点和一个父节点的集合。
在 网上找到一个不错的算法。一起来分享下:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Recursion { StringBuffer returnStr=new StringBuffer(); List nodeList =new ArrayList(); // 构造方法里初始化模拟List,添加测试数据 Recursion() { Node node1 = new Node(1,0); Node node2 = new Node(2,1); Node node3 = new Node(3,1); Node node4 = new Node(4,2); Node node5 = new Node(5,2); Node node6 = new Node(6,2); Node node7 = new Node(7,6); Node node8 = new Node(8,6); nodeList.add(node1); nodeList.add(node2); nodeList.add(node3); nodeList.add(node4); nodeList.add(node5); nodeList.add(node6); nodeList.add(node7); nodeList.add(node8); } /** * 递归函数 * @param list 要递归的节点对象集合 * @param node 要进行递归的节点 */ public void recursionFn(List list , Node node){ if(hasChild(list,node)){ returnStr.append("{id:"); returnStr.append(node.getId()); returnStr.append(",parentId:"); returnStr.append(node.getParentId()); returnStr.append(",children:["); List childList = getChildList(list,node); Iterator it = childList.iterator(); while(it.hasNext()){ Node n = (Node)it.next(); recursionFn(list,n); } returnStr.append("]},"); }else{ returnStr.append("{id:"); returnStr.append(node.getId()); returnStr.append(",parentId:"); returnStr.append(node.getParentId()); returnStr.append(",leaf:true},"); } } /** * 判断是否有孩子 * @param list * @param node * @return */ public boolean hasChild(List list, Node node){ //判断是否有子节点 return getChildList(list,node).size()>0?true:false; } /** * 找去node的所有子节点 * @param list 进行遍历的节点 * @param node 要找孩子的节点 * @return */ public List getChildList(List list , Node node){ //得到子节点列表 List li = new ArrayList(); Iterator it = list.iterator(); while(it.hasNext()){ Node n = (Node)it.next(); if(n.getParentId()==node.getId()){ li.add(n); } } return li; } public String modifyStr(String returnStr){//修饰一下才能满足Extjs的Json格式 return ("["+returnStr+"]").replaceAll(",]", "]"); } public static void main(String[] args) { Recursion r = new Recursion(); r.recursionFn(r.nodeList, new Node(1,0)); System.out.println(r.modifyStr(r.returnStr.toString())); } }
上面的节点结构为:
package com.ruijie.Test; public class Node { private int id; private int parentId; Node(){} Node(int id,int parentId){ this.id=id; this.parentId = parentId; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getParentId() { return parentId; } public void setParentId(int parentId) { this.parentId = parentId; } }
上面的算法简单。主要就是要有要遍历的节点和一个父节点的集合。
发表评论
-
Ext 右上角小图标 tool
2013-04-17 13:59 900tools: [ {id:'toggle'},{id:' ... -
Ext3.4源码之Store -> load() 与reload()
2013-04-03 17:52 21831. load()的源码 // 加载Store的数据 l ... -
Ext3.4源码之Ext.apply()和 Ext.applyif()
2013-04-03 10:08 11911. 查看ext-base.js中的源码可知: Ext.ap ... -
ext-basex.js 进行Ext.Ajax.request 同步请求 FF无法正常
2013-03-04 16:25 16011. ext-basex.js 下载地址. http://co ... -
Ext 上传附件返回值 <pre>json</pre>格式,ff报错
2012-12-19 14:37 858getResponse().getWriter().pri ... -
extjs store中数据转换成json
2012-11-19 17:42 45271. 主要有以下两种方法: var jsonData = ... -
view.getComputedStyle(div.firstChild.firstChild, null) is null
2012-11-07 15:13 989最近在开发时候发现一个很奇怪的错误: Ext 代码如下 ... -
Ext Grid 横行滚动条
2011-12-16 18:29 882主意配置 viewConfig: { auto ... -
Ext.data.Store 小细节收集
2011-10-14 15:09 17061. 常用的初始化方法 新建一个store一般的方法如下(一般 ... -
Ext.Ajax.request 小问题收集
2011-10-14 14:23 10581. Template 一般的Ext.Ajax.request ... -
拼音输入法下输入字母Ext combo 无法进行过滤修正
2011-10-13 10:20 1732最近项目中用来ext 的combo 发下下面一个问题 eg: ... -
Ext 2.x combo keyup事件无法响应
2011-10-12 18:38 1299Ext.override(Ext.form.Combo ... -
Ext Combo 添加空值并且显示出来
2011-10-08 16:15 33001、最简单的方案是在后台从数据库中查询了Combobox数据时 ... -
Ext Grid 小细节收集
2011-09-27 14:51 10411. columns 中的renderer参数 rende ... -
Ext Panel 动态 加载 html
2011-09-13 14:54 3358要实现动态加载html也是时候常用的有下面的方法: 1.aut ... -
Ext 小错误整合
2011-09-01 11:49 11471. Ext.this.addEvents is not a ... -
Ext ajax JSON 数据遍历
2011-07-24 02:08 7019需求:进行ajax请求后,后台传递回来以下json数据 ... -
Ext.TreePanel 的小问题集合
2011-07-07 21:35 8091.unterminated string literal ... -
jsp 进行下载时候乱码 ff正常,IE打开新页面
2011-07-06 22:04 1187最近在通过JSP实现下载的时候,发现火狐下面可以完全正常,但是 ... -
(问题)Ext Panel用autoLoad 加载html页面时一直显示Loading....
2011-06-23 11:08 0在做Panel使用autoLoad加载一个html页面时候出现 ...
相关推荐
首先,**使用现成插件**,例如文件名为`ext-2.2`可能指的是ExtJS,这是一个流行的JavaScript框架,提供了一套完整的组件库,其中包括用于生成树形结构的TreePanel组件。ExtJS的TreePanel提供了丰富的功能,如节点...
在后台,我们使用递归算法来生成树形结构的数据。递归算法是一种非常常见的算法,通过不断地调用自己来解决问题。在这里,我们使用递归算法来遍历树形结构,生成每个节点的数据,并将其组合成一个完整的树形结构。 ...
### 基于内存多叉树的Ext JS无限级树形菜单实现方案 #### 一、研究背景与意义 在当前Web应用程序开发领域,Ext JS框架因其强大的功能和丰富的组件库而受到广泛欢迎,尤其在构建复杂的用户界面时表现突出。在Ext JS...
3. 将获取到的数据转换为多叉树结构,这可能涉及到递归算法,确保所有子节点都被正确地关联到父节点。 4. 将多叉树转换为 JSON 格式,返回给前端。 5. 前端接收到 JSON 数据后,使用 JavaScript 树形控件(如 Ext JS...
总结起来,遍历文件夹并建立目录树是一个涉及操作系统接口、递归算法和数据结构的问题。通过动态控制深度和优化递归,我们可以有效地遍历任意深度的文件结构,同时利用生成器和目录树数据结构降低资源消耗,实现高效...
4. **状态管理**:实现递归算法来同步整个树的选中状态,确保所有节点的状态正确反映用户的意图。例如,当父节点被选中时,其所有子节点都应被选中;反之,如果所有子节点都被取消选中,父节点也应该被取消选中。 5...
综上所述,扫描硬盘并遍历文件夹以建立目录树是一项涵盖操作系统原理、文件系统、递归算法、数据结构以及编程技能的综合任务。通过这个过程,不仅可以理解计算机如何组织和管理文件,还可以提升编程和问题解决的能力...
深度优先搜索(DFS)和广度优先搜索(BFS)是图的基本遍历算法,而最小生成树(Prim算法、Kruskal算法)和最短路径(Dijkstra算法、Floyd算法)是解决图问题的重要工具。 四、排序与查找 排序是对数据进行有序排列...
`ExtTreeHelper.createExtTree()`的具体实现未在给出的代码片段中展示,但通常会涉及递归函数,遍历数据库中的每一层数据,创建TreeNode对象并构建树结构。每个TreeNode对象包含了id、text以及可能的子节点列表。这...
通过这个程序,开发者或学习者可以更好地掌握Linux下的文件和目录操作,理解递归算法,以及如何编写和使用`Makefile`进行自动化构建。同时,这也有助于增强对文件系统结构和操作的理解,这对于系统管理员、软件...
在ASP.NET中,文件的上传、下载和管理是构建Web应用程序时...这需要开发者具备数据库设计、ASP.NET控件使用、HTTP响应处理以及递归算法的基本知识。通过学习和实践这些内容,开发者能够创建出功能完善的文件管理系统。
Windows系统中常见的文件系统有FAT32、NTFS,而Linux系统中常见的有EXT2、EXT3、EXT4等。 - 在文件系统中,文件和文件夹按照目录结构组织,如同一棵倒置的树,根目录位于顶部,其他文件和子文件夹在其下级。 2. **...
实现这一功能通常需要递归算法来生成HTML结构,并配合AJAX请求以异步加载子层级数据。 4. **分页**:在大数据量的情况下,分页是必不可少的。它将数据分为多个部分,每次只加载和显示一部分,提高页面响应速度,...
语法分析是在词法分析的基础上进行的,其目的是检查源程序是否有正确的语法结构,并构造语法树。常见的语法分析方法有自顶向下分析(如递归下降分析)和自底向上分析(如移进-归约分析)。LL(1)分析法和LR(k)分析法...
6. **C语言面试常见问题**:这部分可能涵盖C语言的高级特性,如预处理器、指针的高级用法、递归、链表、树、图等数据结构的实现,以及算法设计与分析。 7. **高深笔试题目**:这部分可能涉及更复杂的嵌入式软件开发...