资源简介
java实现的ID3决策树算法改良版,可以随意改变数据源(符合格式就行)
代码片段和文件信息
package com.wdx.test;
public class GTree {
// 根节点
public TreeNode root = null;
// 插入
public boolean insert(TreeNode parent TreeNode node) {
if (root == null) {
root = node;
return true;
} else {
if (findOne(root parent)) {
// 留待考虑
// TODO 这里会不会直接修改节点的list待考虑
return parent.getChildlist().add(node);
}
}
return false;
}
/**
*
* @param tRoot要参照的根节点
* @param one要查找的节点
* @return 是否存在这个节点
*/
public boolean findOne(TreeNode tRoot TreeNode one) {
boolean b = false;
// 参照根结点为空,则该节点一定不存在
if (tRoot == null) {
return false;
}
//
if (tRoot == one) {
return true;
}
if (tRoot.getChildlist() != null) {
int length = tRoot.getChildlist().size();
for (int i = 0; i < length; i++) {
TreeNode node = tRoot.getChildlist().get(i);
if (node == one) {
return true;
} else {
if (node.getChildlist().size() != 0) {
b = b || findOne(node one);
}
}
}
} else {
return false;
}
return b;
}
// 遍历
/**
*
* @param root
* 根节点
* @param l
* 层数
*/
public void Travelsal(TreeNode root int l) {
int temp = l * 10;
if (root != null) {
if (l == 1) {
System.out.printf(“|--%-10s--“ root.getValue().toString());
}
if (root.getChildlist() != null && root.getChildlist().size() != 0) {
l++;
int length = root.getChildlist().size();
for (int i = 0; i < length; i++) {
TreeNode node = root.getChildlist().get(i);
System.out.printf(“|--%-10s--“ node.getValue());
// if (node.getChildlist() != null && node.getChildlist().size() != 0) {
Travelsal(node l);
System.out.print(“\n“);
int temp1 = temp;
temp = temp + (temp / 10) * 5;
System.out.printf(“%-“ + temp + “s“ “ “);
temp = temp1;
// }
// else {
// System.out.println();
//
// System.out.printf(“%“ + (l-1)*15+ “s“ ““);
// }
}
}
}
}
public void Travelsal1(TreeNode root int l) {
// if (root.getChildlist() != null && root.getChildlist().size() != 0) {
System.out.print(“|“);
int length = l * 3;
for (int i = 0; i < length + 1; i++) {
System.out.print(“-“);
}
System.out.println(root.getValue());
int clength = root.getChildlist().size();
for (int j = 0; j < clength; j++) {
Travelsal1(root.getChildlist().get(j) l + 1);
}
}
// }
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 379 2018-09-10 18:57 20180910Tree\.classpath
文件 388 2018-09-10 15:52 20180910Tree\.project
文件 443 2018-09-12 17:08 20180910Tree\test.txt
文件 591 2018-09-12 17:09 20180910Tree\test2.txt
文件 598 2018-09-10 15:52 20180910Tree\.settings\org.eclipse.jdt.core.prefs
文件 3007 2018-09-13 06:51 20180910Tree\bin\com\wdx\test\GTree.class
文件 975 2018-09-13 06:59 20180910Tree\bin\com\wdx\test\ID3$1.class
文件 10096 2018-09-13 06:59 20180910Tree\bin\com\wdx\test\ID3.class
文件 1592 2018-09-12 12:02 20180910Tree\bin\com\wdx\test\TreeNode.class
文件 2605 2018-09-13 06:51 20180910Tree\src\com\wdx\test\GTree.java
文件 9905 2018-09-13 06:59 20180910Tree\src\com\wdx\test\ID3.java
文件 791 2018-09-10 21:37 20180910Tree\src\com\wdx\test\TreeNode.java
评论
共有 条评论