먼저 두 트리 메뉴 구조의 코드 예를 살펴 보겠습니다.
Singletreenode :
package com.zzj.tree; public class singletreenode {private int id; private int pid; private string 이름; public singletreenode () {} public singletreenode (int id, int pid, string name) {this.id = id; this.pid = pid; this.name = name; getPid () {return pid;} public void setpid (int pid) {this.pid = pid;} public string getName () {return name;} public void setName (string name) {this.name = name;}@override public string tostring () {return " + id +", pid = + pid + " + id +" "]";}}이 구조는 관계형 데이터베이스의 저장에 매우 적합합니다.
Multitreenode :
package com.zzj.tree; import java.util.list; public class multitreenode {private int id; private list <multitreenode> children; public multitreenode () {} public multitreenode (ind id, string name) {this.id = id; this.name = name;} public multitreenode (int id, list <multitleode) id; this.name = name; this.children = children;} public int getId () {return id;} public void setId (int id) {this.id = id;} public string getName () {return name;} public void setName (문자열 이름) {this.name = name;} public list <숫자 void getchildren (getchildrens; setChildren (list <multitreenode> children) {this.children = children;}@public string toString () {return "multitreenode [id =" + id + ", name =" + name + ", children =" + children + "];}}두 개의 변환기
tomultitreetransformer :
package com.zzj.tree; import java.util.arraylist; import java.util.list; public class tomultitreetransformer {private list <singletreenode> singletreenodes; private list <multitreenodes> multitreenodes = new arraylist <> (); public tomultitreetransformer (Singletreenodes) {singletreenodes ter this. = singletreenodes;} public list <multitreenode> transform () {// 먼저 (int i = 0; i <singletreenodes.size.size (); i ++) {singletreenode singlerengreenodes.get (i); boolean isroot = true; for (int j = 0; Singletreenodes.get (j); if (singletreenode.getPid () == temp.getId ()) {isRoot = false; break;}} if (isRoot) {multitreenode multiTreenode = new MultiTreenode (Singletreenode.getId.getId (), Singletreenode.getName ()); Multitreenode. (int i = 0; i <multitreenodes.size (); i ++) {multitreenode multitreenode = multitreenodes.get (i); setchildren (multitreenode);} return multitreenodes;}/*** set child* @param multitreenode*/private void setchildren (multitreenode) {in j = 0 (int j = 0); Singletreenodes.size () {Singletreenode temp = singletreenodes.get (j); if (temp.getPid () == multitreenode.getId ()) {multitreenode child = new Multitreenode (temp.getId (), emp.getName ()); list <multitreenode> children = multitreenode.getchildren (); if (children == null) {children = new ArrayList <> (); multitreenode.setchildren (child);} children.add (child); setchildren (child);}}}}tosingletreetransformer :
package com.zzj.tree; import java.util.arraylist; import java.util.list; public class tosingletreetransformer {private list <multitreenode> multitreenodes; private list <singletreenodes> singletreenodes = new arraylist <> (); public tosingletreetranscorcer (list <multitreenodes) {multitreenodes terlinteodes terlate retreendes. = multitreenodes;} public list <singletreenode> transform () {// (int i = 0; i <multitreenodes.size (); i ++) {multitreenode multitreenode = multitreenodes.get (i); Singletreenode Singletreenode = New Singletreenode (Multitreenode.getId (), 0, Multitreenode.getName ()); Singleletreenodes.add (Singletreenode);} // (int i = 0; i <multitreenodes.size (); i ++) {multitreenode multitreenode = multitreenodes.get (i); getchildren (multitreenode);}* get node* @param node* @param node* @param nodey getchildren (multitreenode multitreenode) {for (int i = 0; i <Singletreenodes.size (); i ++) {Singletreenode temp = singletreenodes.get (i); if (multitreenode.getId () == temp.getId ()) {list <multitreenode> child = multitreenode.getchildren (); if (children! = null) {for (int j = 0; j <childs.size (); multitreenode.getId (), child.getName ()); singletreenodes.add (Singletreenode); getchildren (child);}}}}}}}시험
package com.zzj.tree; import java.util.arraylist; import java.util.list; public class treetransformertest {private final static list <singletreenode> single_tree = new arraylist <singletreenode> (); static {singletreenode = new singletreenode (1, 0, 0, "); Singletreenode (2, 1, "Hunan"); Single_tree.add (Hunan); Singletreenode Changsha = New Singletreenode (3, 2, "Changsha"); Single_tree.add (Changsha); Singleletreenode Hubei = New Singletreenode (4, 1, "Hubei"; Singletree.add (Hubei); Singletreenode (5, 4, "wuhan"); Single_tree.add (Wuhan); Singletreenode America = New Singletreenode (6, 0, "United States"); Single_tree.add (America); Singletreenode California = New Singletreenode (Single_tree.addd (캘리포니아); New Singletree.addle (캘리포니아); Angeles "); Single_tree.add (Losangeles);} public static void main (String [] args)은 예외를 던지기 {tomultitreetransformer multitreetransformer = new TomultitreetRansformer (Single_Tree); list <multitreenode> multitreenodes = multitreetransformer.transform (); system.out.println (multitreenodes); tosingletreetransformer singletreetransformer = new tosingletreetransformer (multitreenodes); list <sallletreenodes> Singletreenodes = singletreetransformer.transform (); systletreenode.println (singletreenodes);}}.출력 결과 :
[multitreenode [id = 1, name = children = [multitreenode [id = 2, name = hunan, children = [id = 3, name = wambssha, children = null]]], multitreenode [id = 4, name = hubei, children = [multitreenode [id = 5, name = null]]]]], multitreenode]] children = [multitreenode [id = 7, name = 캘리포니아, children = [multitreenode [id = 8, name = los angeles, children = null]]]] [singletreende [id = 1, pid = 0, name = inhael], singletreenode [id = 6, pid = 0, singletreenode [id = 2, pid], singleple [2, pid], name = changsha], singletreenode [id = 4, pid = 1, name = hubei], 싱글 린 노드 [id = 5, pid = 4, name = wuhan], 싱글 린도 [id = 7, pid = 6, name = 캘리포니아], 싱글 왼쪽 [id = 8, pid = 7, name = los angeles]]
요약
위는 Java 프로그래밍의 두 트리 메뉴 구조의 전환 코드에 대한이 기사의 전체 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구들은이 사이트를 계속 참조 할 수 있습니다.
Excel 트리 헤더의 전체 코드 예제를 생성하기위한 Java 구현
Java 언어는 이진 트리의 깊이와 너비를 설명합니다.
빨간색과 검은 색 트리를 구현하기위한 Java 알고리즘의 전체 코드 예제
단점이 있으면 메시지를 남겨주십시오.