java树查找
❶ 在线等,计算机高手,java深度搜索树代码
有一本书,是讲JAVA数据结构的,里面有很多树的讲解和例子,二叉树什么的,还有树的遍历,都有例子,建议去看一下
❷ 二叉排序树的插入与查找 求Java大神帮忙
//二叉树结构类Btree.java
publicclassBtree{
privateintdata;
privateBtreeleft;
privateBtreeright;
publicvoidsetData(intdata){
this.data=data;
}
publicintgetData(){
returndata;
}
publicvoidsetLeft(Btreebtree){
this.left=btree;
}
publicvoidsetRight(Btreebtree){
this.right=btree;
}
publicBtreegetLeft(){
returnleft;
}
publicBtreegetRight(){
returnright;
}
publicBtree(){
super();
}
}
//工具类,二叉树创建,查找,遍历,排序。都在这了Tools.java
publicclassTools{
publicBtreecreate(intdata){
Btreebtree=newBtree();
btree.setData(data);
returnbtree;
}
publicvoidadd(Btreebtree,intdata){
if(data<btree.getData()){
if(btree.getLeft()!=null){
btree=btree.getLeft();
add(btree,data);
}else{
btree.setLeft(create(data));
}
}else{
if(btree.getRight()!=null){
btree=btree.getRight();
add(btree,data);
}else{
btree.setRight(create(data));
}
}
}
//中序遍历
publicvoidmidSerch(Btreebtree){
if(btree.getLeft()!=null)
midSerch(btree.getLeft());
System.out.print(btree.getData()+"");
if(btree.getRight()!=null)
midSerch(btree.getRight());
}
//二叉树查找
publicvoidfind(Btreebtree,intdata){
if(btree.getData()>data)
{
if(btree.getLeft()==null)
{
System.out.println("没有这种结果,搜索完毕");
return;
}else
find(btree.getLeft(),data);
}elseif(btree.getData()==data)
{
System.out.println("查找成功,查找到的数据是"+data);
return;
}else
{
if(btree.getRight()==null){
System.out.println("没有这种结果,搜索完毕");
return;
}
else
find(btree.getRight(),data);
}
}
}
//主类,与注释的自己看MidSerchBtree.java
publicclassMidSerchBtree{
publicstaticvoidmain(Stringargs[]){
Toolstools=newTools();
intdatas[]={6,4,3,7,8,9,2,1,5,8,9,12,23,45,3,7,5};
Btreebtree=tools.create(datas[0]);
for(inti=1;i<datas.length;i++){//第一个初始化插入作为根节点了
tools.add(btree,datas[i]);
}
tools.midSerch(btree);//中根遍历小的插入左边,大的在右边,所以,中序遍历一遍就是排序
tools.find(btree,56);
}
}
❸ java查看结果树不显示
因为Jmeter尚未支持Java10。
查看结果树查看响应有哪几种方法,可通过左侧面板底部的下拉框选择、查看结果树中请求的默认格式为,会显示请求的取样器结果、请求、响应数据个部分内容。取样器结果:默认视图,可以切换为视图,表单显示更直观。
查看结果树中请求的默认格式为,会显示请求的取样器结果、请求、响应数据个部分内容。
❹ Java中查询树,当查询到相应的树节点,如何让焦点显示在相应的树节点上
根据不同的选择模式,使用
void
setSelectionPath(TreePath path)
选择指定路径标识的节点。
void
setSelectionPaths(TreePath[] paths)
选择由指定的路径数组标识的节点。
void
setSelectionRow(int row)
选择显示的指定行的节点。
void
setSelectionRows(int[] rows)
选择与显示的每个指定行对应的节点。
❺ java数据结构二叉树查找结点操作,递归调用求详细讲解
这是先序遍历树的代码,什么是先序遍历呢,一种按照根-左子树-右子树的顺序遍历树就是先序遍历。
CBTType TreeFindNode(CBTType treeNode,String data){
CBTType ptr;
if(treeNode==null){//输入根节点为空时
return null;
}else{
if(treeNode.data.equals(data)){//根节点等于要查找的数据时
return treeNode;
}else{
if((ptr=TreeFindNode(treeNode.left,data))!=null){//从左子树查找,为什么可以用TreeFindNode表示呢?
return ptr;
}else if((ptr=TreeFindNode(treeNode.right,data))!=null){//从右子树查找
return ptr;
}else{
return null;
}
}
}
}
从左子树查找,为什么可以用TreeFindNode表示呢?因为,左子树也可以按照先序遍历的顺序查找的,所以当然可以用TreeFindNode表示,如果你想左子树用中序遍历查找,那么就不可以用TreeFindNode表示。
上述例子的查找过程:
1 --根(2,4,5)--左(3,6,7)--右
2--根(4)--左(5)--右
4--根
5--根
返回
❻ java 二叉树查找
答案是-2的
你可以看到api的解释:
使用二分搜索法搜索指定列表,以获得指定对象。在进行此调用之前,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List)
方法)。
如果搜索键包含在列表中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点
被定义为将键插入列表的那一点:即第一个大于此键的元素索引;如果列表中的所有元素都小于指定的键,则为
list.size()。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
你的ab经过升序排列在第1位(算是第二位,当然此时的0算第一位了),那么返回值就应该是-2;
❼ java树级对象递归查找子集问题
packagecom.demo.dept;
/**
*@authordongbin.yu
*@from2016-05-06
*@sinceV1.0
*/
publicclassDept{
privateintid;
privateStringname;
privateintparentId;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetParentId(){
returnparentId;
}
publicvoidsetParentId(intparentId){
this.parentId=parentId;
}
publicDept(intid,Stringname,intparentId){
this.id=id;
this.name=name;
this.parentId=parentId;
}
}
packagecom.demo.dept;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
/**
*@authordongbin.yu
*@from2016-05-06
*@sinceV1.0
*/
publicclassDeptTest{
privatestaticList<Dept>depts=newArrayList<>();
static{
depts.add(newDept(1,"部门1",0));
depts.add(newDept(2,"部门2",1));
depts.add(newDept(3,"部门3",1));
depts.add(newDept(4,"部门4",1));
depts.add(newDept(5,"部门5",2));
depts.add(newDept(6,"部门6",3));
depts.add(newDept(7,"部门7",2));
depts.add(newDept(8,"部门8",2));
depts.add(newDept(9,"部门9",1));
depts.add(newDept(10,"部门10",5));
}
publicstaticvoidmain(String[]args){
Map<Integer,List<Integer>>deptMap=newHashMap<>();
for(Deptdept:depts){
deptMap.put(dept.getId(),getChildDept(dept.getId()));
}
System.out.println(deptMap);
}
privatestaticList<Integer>getChildDept(intid){
List<Integer>ids=newArrayList<>();
for(Deptdept:depts){
if(dept.getParentId()==id){
//添加第一次父id符合的
ids.add(dept.getId());
//添加嵌套父id符合的
ids.addAll(getChildDept(dept.getId()));
}
}
Collections.sort(ids);
returnids;
}
}
❽ java 目录树如何检索子级返回
Java中使用递归算法实现查找树形结构中所有父级和子级节点,用递归加一个全局变量标记是否已经找到,然后返回。
截取后面的一段例子:
if (list[i].ID.Equals(id) || found)
found = true;
return;
拓展资料
递归查询子级节点
1.一个节点可能有多个子级节点,每个自己节点可能还有更多的子级节点。
2.所以递归时的参数用一个list来接受,首先遍历参数list,分别查询pid为参数id的对象。
3.每一个参数id所查询返回的数据是一个对象的list。
4.遍历list获取符合条件的对象的id值,一份存到temp中用作递归的参数,并存到全局变量中用来获取所有符合条件的id。