社区
Java SE
帖子详情
请问如何建立一个树形的数据结构??(急)在线等
whycloud
2004-08-19 03:37:10
我在做设计的时候需要用的树的数据结构。请问要如何实现?由于数据太多,绝对不可以用2维数组实现
...全文
471
17
打赏
收藏
请问如何建立一个树形的数据结构??(急)在线等
我在做设计的时候需要用的树的数据结构。请问要如何实现?由于数据太多,绝对不可以用2维数组实现
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shiyonggang
2004-08-20
打赏
举报
回复
用树标签吧,挺方便的
lakesea
2004-08-20
打赏
举报
回复
取得superID的子节点的方法
public static GE_MAINDOC_M[] findBySuperID(String superID) {
GE_MAINDOC_M[] array = new GE_MAINDOC_M[0];
DataStore data = new DataStore();
try{
data.setCommand("SELECT COUNT(GE_GID) FROM GE_MAINDOC_M WHERE GE_SUPERID = ?");
data.setString(1,superID);
data.execute();
data.next();
int rowCount = data.getInt(1);
if(rowCount>0) {
GE_MAINDOC_M gE_MAINDOC_M = null;
data.close();
data.setCommand("SELECT GE_GID,GE_MNAME,ISDOC FROM GE_MAINDOC_M WHERE GE_SUPERID = ? ORDER BY GE_GID");
data.setString(1,superID);
data.execute();
array = new GE_MAINDOC_M[rowCount];
for(int i=0;i<rowCount;i++) {
data.next();
gE_MAINDOC_M = new GE_MAINDOC_M();
gE_MAINDOC_M.ge_gid = data.getInt(1);
gE_MAINDOC_M.ge_mname = data.getString(2);
gE_MAINDOC_M.isdoc = data.getInt(3);
array[i] = gE_MAINDOC_M;
}
}
}
catch(Exception e) {
e.printStackTrace();
}
finally{
data.close();
}
return array;
}
//生成树的方法
private JTree createTree(){
DefaultMutableTreeNode root = new DefaultMutableTreeNode("图形资源");
DefaultTreeModel treeModel = new DefaultTreeModel(root);
JTree tree = new JTree(treeModel);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
addTreeNode(root,"0");
tree.expandRow(0);
tree.setSelectionRow(0);
tree.addTreeSelectionListener(new TreeSelectionListener(){
public void valueChanged(TreeSelectionEvent e){
retrieveSymbol();
}
});
return tree;
}
//生成节点的递归调用
private void addTreeNode(DefaultMutableTreeNode treeNode,String superID) {
GE_MAINDOC_M[] array = GE_MAINDOC_M.findBySuperID(superID);
DefaultMutableTreeNode node = null;
for (int i = 0 ; i < array.length; i++){
node = new DefaultMutableTreeNode(array[i]);
addTreeNode(node,array[i].ge_gid+"");
treeNode.add(node);
}
}
数据结构:ID, NAME ,SUPERID
很简单啊!
holy_phoenix
2004-08-20
打赏
举报
回复
javax.swing.tree is a control that displays a set of hierarchical data as an outline.
你要找的是java.util.List/java.util.ListIterator,定义好树的规则,很容易实现,因为所有添加节点、删除节点的基本工作已经本完成了。
whycloud
2004-08-20
打赏
举报
回复
TO沙虫:能不能说具体一些
TO不要抬杠:tree类是在javax.swing.tree中,用不好吧,而且我的数据是从数据库中读出来的,也要判断节点的连接呀
Lulq21cn
2004-08-20
打赏
举报
回复
楼主想实现如下结构:
是这个样子的,我在数据库中建立了两个字段,一个是这个节点的ID,令一个是下一个节点的ID,我希望在屏幕上输出这样一个结果
1
2
3
4
5
6
7
其中2347是1的子节点,56是4的子节点
----------------------
数据结构:ID, NAME ,SUPERID
1) 如果是Sql Server,可参考sql Server联机丛书的 Transact-SQL 窍门->展开层次结构
一节有详细描述;
2) 如果使用Oracle数据库,操作上述数据结构更为简单(网上有太多实例),通过一条简单的Pl Sql就可以实现上述结果,你要做的是只需在客户端将它取出显示出来就行了。
holy_phoenix
2004-08-19
打赏
举报
回复
J2SE里面有现成的tree的源代码。
Lulq21cn
2004-08-19
打赏
举报
回复
原来是关于数据库的,
A)数据库是Sql Server,在帮助里有关于树状浏览的详细实例,在后台通过存储过程实现;
B)数据库是Oracle,那更简单的,通过自带的Pl sql就可以实现。
对于后台可以实现的数据,不一定一定就必须在前台实现,效率也不见得高。
whycloud
2004-08-19
打赏
举报
回复
UP
whycloud
2004-08-19
打赏
举报
回复
由于数据量太大了,有可能会达到2000+,所以不可能用循环读
gallenvaw
2004-08-19
打赏
举报
回复
我认为应该建立至少三个字段
parentId youselfId childrenId
然后如果是楼主的结构的话,可以建立三个table(1)(2,3,4,7)(5,6)
根据jdbc 循环嵌套从数据库读出不就可以了么?
lakesea
2004-08-19
打赏
举报
回复
是这个样子的,我在数据库中建立了两个字段,一个是这个节点的ID,令一个是下一个节点的ID
为什么另一个不是父亲节点的ID啊??让人费解!!!
gallenvaw
2004-08-19
打赏
举报
回复
应该还有一个父节点的id呀!
whycloud
2004-08-19
打赏
举报
回复
是这个样子的,我在数据库中建立了两个字段,一个是这个节点的ID,令一个是下一个节点的ID,我希望在屏幕上输出这样一个结果
1
2
3
4
5
6
7
其中2347是1的子节点,56是4的子节点
射天狼
2004-08-19
打赏
举报
回复
那就定义一棵树呗,数据结构里不是有这样的算法吗~~~~
gallenvaw
2004-08-19
打赏
举报
回复
你是说节点太多么??可以用数据库来建数呀!
AllError
2004-08-19
打赏
举报
回复
大虾,不懂你的意思耶
whycloud
2004-08-19
打赏
举报
回复
自己UP一下
程序员面试攻略 part1(共2个)
从求职到面试,从
数据结构
到算法,从智力题到非技术题,无不一一涵盖。
急
上网搜之,得矣。列诸信息及下载地址,供大家参考。同时也祝贺找工作完全进入应试时代…… 《程序员面试攻略》(Programming Interview ...
程序员面试攻略part 2(共2个)
从求职到面试,从
数据结构
到算法,从智力题到非技术题,无不一一涵盖。
急
上网搜之,得矣。列诸信息及下载地址,供大家参考。同时也祝贺找工作完全进入应试时代…… 《程序员面试攻略》(Programming Interview ...
用js来实现那些
数据结构
13(树01-二叉搜索树的实现)
前一篇文章我们学会了第
一个
非顺序
数据结构
hashMap,那么这一篇我们来学学树,包括树的概念和一些相关的术语以及二叉搜索树的实现。唉?为什么不是树的实现,不是二叉树的实现。偏偏是二叉搜索树的实现?嗯,别
急
。...
HTML文档属于哪种
数据结构
,三种常见的
数据结构
有四类基本结构:集合、线性结构、
树形
结构、图状结构; 集合结构:除了同属于一种类型外,别无其它关系 线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可数据...
微信小程序-
树形
菜单替代方案
最近项目(微信小程序项目)有
一个
需求,有一些多级结构的数据,需要
一个
树形
的菜单来显示内容,类似如下: : 然而,在实现的时候却意外的遇到了困难。。 实现
树形
菜单遇到的困难 其实应该说是实现无限层级树...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章