package org.wyh;
import java.util.ArrayList;
public class GetNodesLeaves {
static ArrayList<String> del = new ArrayList<String>();// 临时集合存要删除的node
/*
* 取要要删除的node集合
*/
public void getDelNodes(ArrayList<String> src, String node, int len) {
ArrayList<String> tmp = new ArrayList<String>();
for (int i = 0; i < src.size(); i++) {
if (src.get(i).startsWith(node)) {
/*
* 递归取得所有node及其叶子
*/
if (len > 0) {
getDelNodes(src, src.get(i), len - 1);
} else {
tmp.add(src.get(i));
}
}
}
for (int j = 0; j < tmp.size(); j++) {
/*
* 如果存在node的叶子,则把叶子的node放入要删除的的集合中
*/
if (tmp.size() > 1) {
del.add(tmp.get(0));
}
}
}
/*
* 取得给定node的所有叶子
*/
private void getLeaf(ArrayList<String> src, String node, int len) {
getDelNodes(src, node, len);
for (int j = 0; j < del.size(); j++) {
src.remove(del.get(j));
}
}
// 测试方法
public static void main(String[] args) {
// TODO Auto-generated method stub
GetNodesLeaves test = new GetNodesLeaves();
ArrayList<String> srclist = new ArrayList<String>();
srclist.add("0101");
srclist.add("0102");
srclist.add("0103");
srclist.add("0104");
srclist.add("01041");
srclist.add("0104199");
srclist.add("010419988");
srclist.add("010419988a");
srclist.add("010419988b");
test.getLeaf(srclist, "01", srclist.size());
for (String ss : srclist) {
System.out.println(ss);
}
}
}
分享到:
相关推荐
一、实验目的 1.基于给定的人脸数据集,基于PCA技术实现特征脸。 二、实验内容 1. 对于给定的人脸数据集,通过函数调用,在GUI界面上显示出其特征脸; 可以直接运行,MATLAB
针对给定模式验证数据结构
实验报告 采用链式存储结构求任意给出的二叉树的叶子节点个数,过程有详解,包括过程中的错误。
C语言程序设计-给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可);.c
二叉树采用链式存储结构,此算法可以实现计算一颗给定的二叉树中叶子结点的数目
树是一种常用的数据结构,如文件目录结构就是一种树形结构。现给定一个目录路径(如:C:\Data\),请实现一个目录结构树
1.给定数据集,使用最小二乘法实现对数据的回归; 二、实验内容 1. 分训练和测试两个过程,使用cartdelve数据集里的前若干个数据进行训练,最后100个数据进行测试; 2. 分别使用前100、200、……,1000个数据进行...
二叉树的各种遍历(前序、中序、后序、层序),以及计算树的叶子树和树的深度
通过给定一组数据点并反求控制点的NURBS曲线插值生成Matlab编程实例,文中含matlab源码,开曲线、闭曲线、自由端点,可深入学习和理解nurbs,教材笔记精粹总结
自己整理的全国行政区划表,包含一个树形表格式为 id name parentId code格式
printf("请输入树叶子结点的总数:"); scanf("%d",&n); t=2*n-1; printf("请输入各叶子结点的数值:"); for(j=1;j;j++) {scanf("%d",&r[j].data); r[j].tag=0; r[j].lch=0; r[j].rch=0; } i=0; while(i) {...
任意给定一组数据, 设计一个算法, 建立一棵二叉排序树, 对它进行查找、 插入、删除等操作。
Description 给定一个由n行数字组成的数字三角形如下...所有数字在0至99之间。 Output 对应每组测试数据,每行输出的是计算出的最大值。 Sample Input 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 Sample Output 30
由文件input.txt 提供输入数据。文件的第1 行是数字三角形的行数n,1£n£100。接下 来n行是数字三角形各行中的数字。所有数字在0..99之间。 Output 程序运行结束时,将计算结果输出到文件output.txt 中。文件的第...
天气因素有温度、湿度和刮风等,通过给出数据,使用决策树算法学习分类,输出一个人是运动和不运动与天气之间的规则树。
判别给定二叉树是否为二叉排序树
1、进一步掌握指针变量、动态变量的含义。 2、掌握二叉树的结构特性,以及各种存储结构的特点和适用范围。 3、掌握用指针类型描述、访问和处理二叉树的运算。 二、实验内容 1、以二叉链表作存储结构,试编写前序、...
求解出从给定顶点到所有顶点的最短路径 判断一个有向图g是否是一棵有向树。(任意一个顶点可能是根实验测试数据基本要求: 第一组数据: dirtree2.grp 第二组数据: grp12.grp 第三组数据: dirtree.grp 第四组数据...
从数据数组生成摘要的 Node-RED 节点 数据数组以以下形式传递: [ {"field1": <data>}, {"field2": <data>}, {"field3": <data>}, ... ] 在节点的配置中,您可以定义一组应用于数据表中字段的规则。 每个规则...
使用神经网络和传统算法对于给定时间序列数据进行预测