您的位置:

java树形结构,java树形结构查询

本文目录一览:

如何用Java实现树形结构啊?

package tree;

import java.util.LinkedList;

import java.util.List;

/**

* 功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历

*

* 参考资料0:数据结构(C语言版)严蔚敏

*

* 参考资料1:

*

* 参考资料2:

*

* @author ocaicai@yeah.net @date: 2011-5-17

*

*/

public class BinTreeTraverse2 {

private int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

private static ListNode nodeList = null;

/**

* 内部类:节点

*

* @author ocaicai@yeah.net @date: 2011-5-17

*

*/

private static class Node {

Node leftChild;

Node rightChild;

int data;

Node(int newData) {

leftChild = null;

rightChild = null;

data = newData;

}

}

public void createBinTree() {

nodeList = new LinkedListNode();

// 将一个数组的值依次转换为Node节点

for (int nodeIndex = 0; nodeIndex array.length; nodeIndex++) {

nodeList.add(new Node(array[nodeIndex]));

}

// 对前lastParentIndex-1个父节点按照父节点与孩子节点的数字关系建立二叉树

for (int parentIndex = 0; parentIndex array.length / 2 - 1; parentIndex++) {

// 左孩子

nodeList.get(parentIndex).leftChild = nodeList

.get(parentIndex * 2 + 1);

// 右孩子

nodeList.get(parentIndex).rightChild = nodeList

.get(parentIndex * 2 + 2);

}

// 最后一个父节点:因为最后一个父节点可能没有右孩子,所以单独拿出来处理

int lastParentIndex = array.length / 2 - 1;

// 左孩子

nodeList.get(lastParentIndex).leftChild = nodeList

.get(lastParentIndex * 2 + 1);

// 右孩子,如果数组的长度为奇数才建立右孩子

if (array.length % 2 == 1) {

nodeList.get(lastParentIndex).rightChild = nodeList

.get(lastParentIndex * 2 + 2);

}

}

/**

* 先序遍历

*

* 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已

*

* @param node

* 遍历的节点

*/

public static void preOrderTraverse(Node node) {

if (node == null)

return;

System.out.print(node.data + " ");

preOrderTraverse(node.leftChild);

preOrderTraverse(node.rightChild);

}

/**

* 中序遍历

*

* 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已

*

* @param node

* 遍历的节点

*/

public static void inOrderTraverse(Node node) {

if (node == null)

return;

inOrderTraverse(node.leftChild);

System.out.print(node.data + " ");

inOrderTraverse(node.rightChild);

}

/**

* 后序遍历

*

* 这三种不同的遍历结构都是一样的,只是先后顺序不一样而已

*

* @param node

* 遍历的节点

*/

public static void postOrderTraverse(Node node) {

if (node == null)

return;

postOrderTraverse(node.leftChild);

postOrderTraverse(node.rightChild);

System.out.print(node.data + " ");

}

public static void main(String[] args) {

BinTreeTraverse2 binTree = new BinTreeTraverse2();

binTree.createBinTree();

// nodeList中第0个索引处的值即为根节点

Node root = nodeList.get(0);

System.out.println("先序遍历:");

preOrderTraverse(root);

System.out.println();

System.out.println("中序遍历:");

inOrderTraverse(root);

System.out.println();

System.out.println("后序遍历:");

postOrderTraverse(root);

}

}

javaweb里面树形结构(tree)

这个是java中的forEach循环,和

for(int i =0 ;i  10 ;i++){...}

还是有点区别的。有问题可以继续 问。

用Java实现一个树形结构,并对其进行遍历

import java.util.Iterator;

import java.util.Random;

import java.util.TreeSet;

public class Demo{

    public static void main(String[] args) throws Exception {

        TreeSetInteger ts = new TreeSetInteger();

        for(int i = 0; i  10; i++){

            ts.add(new Random().nextInt(999));

        }

        for(IteratorInteger it = ts.iterator(); it.hasNext();){

            System.out.println(it.next());

        }

    }

}

//上面是利用TreeSet进行简单的二叉树实现,另有遍历,当然遍历是自然顺序。

//如有需要请自行修改吧。

java 递归数据库生成 树形结构问题

1、准备表结构及对应的表数据

a、表结构:

create table TB_TREE

(

CID NUMBER not null,

CNAME VARCHAR2(50),

PID NUMBER //父节点

)

b、表数据:

insert into tb_tree (CID, CNAME, PID) values (1, '中国', 0);

insert into tb_tree (CID, CNAME, PID) values (2, '北京市', 1);

insert into tb_tree (CID, CNAME, PID) values (3, '广东省', 1);

insert into tb_tree (CID, CNAME, PID) values (4, '上海市', 1);

insert into tb_tree (CID, CNAME, PID) values (5, '广州市', 3);

insert into tb_tree (CID, CNAME, PID) values (6, '深圳市', 3);

insert into tb_tree (CID, CNAME, PID) values (7, '海珠区', 5);

insert into tb_tree (CID, CNAME, PID) values (8, '天河区', 5);

insert into tb_tree (CID, CNAME, PID) values (9, '福田区', 6);

insert into tb_tree (CID, CNAME, PID) values (10, '南山区', 6);

insert into tb_tree (CID, CNAME, PID) values (11, '密云县', 2);

insert into tb_tree (CID, CNAME, PID) values (12, '浦东', 4);

2、TreeNode对象,对应tb_tree

public class TreeNode implements Serializable {

private Integer cid;

private String cname;

private Integer pid;

private List nodes = new ArrayList();

public TreeNode() {

}

//getter、setter省略

}

3、测试数据

public class TreeNodeTest {

@Test

public void loadTree() throws Exception{

System.out.println(JsonUtils.javaToJson(recursiveTree(1)));

}

/**

* 递归算法解析成树形结构

*

* @param cid

* @return

* @author jiqinlin

*/

public TreeNode recursiveTree(int cid) {

//根据cid获取节点对象(SELECT * FROM tb_tree t WHERE t.cid=?)

TreeNode node = personService.getreeNode(cid);

//查询cid下的所有子节点(SELECT * FROM tb_tree t WHERE t.pid=?)

List childTreeNodes = personService.queryTreeNode(cid);

//遍历子节点

for(TreeNode child : childTreeNodes){

TreeNode n = recursiveTree(child.getCid()); //递归

node.getNodes().add(n);

}

return node;

}

}

输出的json格式如下:

{

"cid": 1,

"nodes": [

{

"cid": 2,

"nodes": [

{

"cid": 11,

"nodes": [

],

"cname": "密云县",

"pid": 2

}

],

"cname": "北京市",

"pid": 1

},

{

"cid": 3,

"nodes": [

{

"cid": 5,

"nodes": [

{

"cid": 7,

"nodes": [

],

"cname": "海珠区",

"pid": 5

},

{

"cid": 8,

"nodes": [

],

"cname": "天河区",

"pid": 5

}

],

"cname": "广州市",

"pid": 3

},

{

"cid": 6,

"nodes": [

{

"cid": 9,

"nodes": [

],

"cname": "福田区",

"pid": 6

},

{

"cid": 10,

"nodes": [

],

"cname": "南山区",

"pid": 6

}

],

"cname": "深圳市",

"pid": 3

}

],

"cname": "广东省",

"pid": 1

},

{

"cid": 4,

"nodes": [

{

"cid": 12,

"nodes": [

],

"cname": "浦东",

"pid": 4

}

],

"cname": "上海市",

"pid": 1

}

],

"cname": "中国",

"pid": 0

}

java树形结构,java树形结构查询

2023-01-07
Java树形结构查询用法

在Java中,树形结构查询主要是通过特定的数据结构和相关算法,来实现对特定的树形结构数据的查询操作,从而获取树中的某个或者某些节点的信息。一、常用的树形数据结构在Java中,常用的树形结构包括二叉树、

2023-12-08
Java树形结构查询用法

在Java中,树形结构查询主要是通过特定的数据结构和相关算法,来实现对特定的树形结构数据的查询操作,从而获取树中的某个或者某些节点的信息。一、常用的树形数据结构在Java中,常用的树形结构包括二叉树、

2023-12-08
java树形json(Java树形结构筛选查询)

本文目录一览: 1、java如何获取树形格式的json,麻烦提供下思路 2、java 机构树怎么生成json 3、java实现 输入json字符串,返回树形显示 java如何获取树形格式的json,麻

2023-12-08
java树形结构json(java树形结构扁平化实例)

本文目录一览: 1、java 递归数据库生成 树形结构问题 2、java实现树形结构,可以把String[] a = {"1", "1-3-4", "1-2", "1-2"}这个数组,转变成如图的树j

2023-12-08
java树形结构,java树形结构递归实现

2022-11-29
Java 树形结构

2023-05-18
java树结构,java树结构递归

2022-11-30
Java递归树形结构详解

2023-05-17
php树形结构查询,mysql树形结构查询

2022-11-21
java树,java树形结构递归实现

2022-11-27
java树结构,java树结构 工具类

2023-01-07
java树,java树结构

2023-01-08
Java树形结构的解释和用法

Java树形结构是一种可以存储元素的有层级关系的数据结构,每个元素以节点的形式存在,并且一个根节点会关联多个子节点,子节点再关联更多的子节点,以此类推。一、树的基本概念1、树形结构是一种递归式数据结构

2023-12-08
JavaTreeNode:树形结构之Java实现

2023-05-18
java递归树状json,java递归组织结构树

2022-11-24
php无限树状分类查找字段,php树形结构

2022-11-24
java数组按树形结构排序,java数组元素排序

2023-01-08
java实现avl树的重构,java 树 数据结构

2022-11-22
js树形结构样式,js树形组织图

本文目录一览: 1、求大神指点js生成树结构 2、如何使用js实现select下拉框里是树形结构 3、js的树形结构怎么实现 4、如何用js实现select下拉框里是树形结构,可复选,select框中

2023-12-08