树,不是二叉树

muwinger 2010-04-06 03:52:17
我想实现树的数据结构,不是二叉树。有一个根,有n个children,每个child可以有子树。
这个要怎么实现,给点思路啊。。。
...全文
62 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liboofsc 2010-04-07
  • 打赏
  • 举报
回复
因为不能改,突然想起两个方法应该改一下。

public void removeChildren(int index){
childrenNodes.get(index).setFatherNode(null);
childrenNodes.remove(index);

}

public void removeAllChildren(){
childrenNodes.clear();
}

public int addChildrenNode(TreeNode childrenNode) {
childrenNodes.add(childrenNode);
childrenNode.setFatherNode(this);
return childrenNodes.size() - 1;
}
liboofsc 2010-04-07
  • 打赏
  • 举报
回复
随便写了个,时间紧,只写了个大概,很多方法没写全,参考下吧。

package entity;

import java.util.ArrayList;
import java.util.List;

public class TreeNode {

private TreeNode fatherNode = null;

private List<TreeNode> childrenNodes = new ArrayList<TreeNode>();

private String nodeName = null;

private Object nodeValue = null;

public boolean hasChildren(){
return childrenNodes.size() > 0 ? true : false;
}

public void removeChildren(int index){
childrenNodes.remove(index);
}

public void removeAllChildren(){
childrenNodes.clear();
}

public int addChildrenNode(TreeNode childrenNode) {
childrenNodes.add(childrenNode);
return childrenNodes.size() - 1;
}

public List<TreeNode> getAllChildrenNodes() {
return childrenNodes;
}

public String getNodeName() {
return nodeName;
}

public void setNodeName(String nodeName) {
this.nodeName = nodeName;
}

public Object getNodeValue() {
return nodeValue;
}

public void setNodeValue(Object nodeValue) {
this.nodeValue = nodeValue;
}

public TreeNode getFatherNode() {
return fatherNode;
}

public void setFatherNode(TreeNode fatherNode) {
this.fatherNode = fatherNode;
}


public static void main(String[] args) {
TreeNode root = new TreeNode();
root.setNodeName("根节点");
root.setNodeValue("四川省");

TreeNode child1 = new TreeNode();
child1.setNodeName("子节点");
child1.setNodeValue("成都市");

TreeNode child2 = new TreeNode();
child2.setNodeName("子节点");
child2.setNodeValue("成华区");

TreeNode child3 = new TreeNode();
child3.setNodeName("子节点");
child3.setNodeValue("金牛区");

TreeNode child4 = new TreeNode();
child4.setNodeName("子节点");
child4.setNodeValue("锦江区");
//root.a;

root.addChildrenNode(child1);

child1.addChildrenNode(child2);
child1.addChildrenNode(child3);
child1.addChildrenNode(child4);


//遍历的时候用根节点开始,用递归往下面遍历,直到节点没有子节点为止。


}

}

horizonlyhw 2010-04-06
  • 打赏
  • 举报
回复
直接hashtable套起來就行了~
gentalguo 2010-04-06
  • 打赏
  • 举报
回复
什么意思?没有看明白呢?
你要做成什么样子?一个动态配置的工具?
一个提供二次开发的小平台?
还是说你有这样的一租数据要展现?
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【注意】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为英文名字后再运行!有问题私信沟通,祝顺利! 基于opencv图像处理+卷积神经网络实现的实时人脸识别python源码+项目说明.zip 1.原理介绍: 人脸检测利用opencv进行图像处理,借用keras框架搭建卷积神经网络,对图像进行特征提取与特征训练,再利用训练好的分类模型进行预测,再将预测标签实时打在每一帧图片上,实现实时人脸检测与人脸标注. ## 2.具体步骤: 2.1数据获取:借由opencv自带的人脸检测haarcascade_frontalface_alt2.xml进行人脸检测划分,构建起2*1000数据集. 2.2数据处理:利用opencv对图片进行读取,剪切,转为矩阵;划分好图片和标签集 2.3模型训练与保存: > 2.3.1搭建CNN神经网络模型; > 2.3.2对标签进行one-hot编码(用不同位置数组表示不同类型),对图像矩阵进行归一化; > 2.3.3将处理好的数据分批量fit给模型,进行训练. 保存训练好的模型,以便调用. 2.4模型预测:调用训练完成的模型进行识别.

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧