當前位置:首頁 » 編程語言 » java樹結構

java樹結構

發布時間: 2023-01-13 11:13:11

1. javaweb裡面樹形結構(tree)

這個是java中的forEach循環,和

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

還是有點區別的。有問題可以繼續 問。

2. java使用遞歸實現樹形結構

sql">
inserttb_menu(id,name,parent)(640000000000,北京市,0);
inserttb_menu(id,name,parent)(640100000000,昌平區,1);
inserttb_menu(id,name,parent)(640101000000,霍營,2);
inserttb_menu(id,name,parent)(640101001000,回龍觀東大街,3);

添加一個節點屬性, 根據數據不同代表的地位不同,0就代表父節點 ,1是0的子節點,2是1的子節點,以此類推。

3. java 如何遞歸 給樹型結構的元素編號

insert tb_menu(id, name, parent) (640000000000,北京市 ,0);
insert tb_menu(id, name, parent) (640100000000,昌平區 ,1);
insert tb_menu(id, name, parent) (640101000000,霍營 ,2);
insert tb_menu(id, name, parent) (640101001000, 回龍觀東大街,3);

添加一個節點屬性, 根據數據不同代表的地位不同,0就代表父節點 ,1是0的子節點,2是1的子節點,以此類推。

4. java中如何建立一個java樹,請詳解

importjava.awt.*;
importjavax.swing.*;
classTreeDemoextendsJFrame
{
publicTreeDemo()
{
setSize(400,300);
setTitle("演示怎樣使用JTree");
show();
JScrollPanejPanel=newJScrollPane();
getContentPane().add(jPanel);
JTreejtree=newJTree();
jPanel.getViewport().add(jtree,null);
validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
publicclassExample5_25
{
publicstaticvoidmain(String[]args)
{
TreeDemoframe=newTreeDemo();
}
}

其中JScrollPane是一個帶滾動條的面板類。

將對象加入到帶滾動條的面板類中,在將已建的數放入到其中。

就可建立一個系統默認的樹結構。

5. 如何用Java實現樹形結構啊

定義一個簡單的菜單類 這里是簡單的示例 你可以自行擴展package entity;import java.util.ArrayList;
import java.util.List;/**
* 菜單類
* @author Administrator
*
*/
public class Menu {
/**
* 菜單標題
*/
private String title;
/**
* 子菜單的集合
*/
private List<Menu> childs;

/**
* 父菜單
*/
private Menu parent;

/**
* 構造函數 初始化標題和子菜單集合
*/
public Menu(String title) {
this();
this.title=title;
}
/**
* 構造函數 創建一個虛擬的父菜單(零級菜單) 所有的一級菜單都歸屬於一個虛擬的零級菜單
*
*/
public Menu() {
this.childs = new ArrayList<Menu>();
}
/**
* 獲取子菜單
* @return
*/
public List<Menu> getChilds() {
return childs;
}
/**
* 獲取標題
* @return
*/
public String getTitle() {
return title;
}
/**
* 獲取父菜單
* @return
*/
public Menu getParent() {
return parent;
}
/**
* 添加子菜單並返回該子菜單對象
* @param child
* @return
*/
public Menu addChild(Menu child){
this.childs.add(child);
return child;
}
/**
* 設置父菜單
* @param parent
*/
public void setParent(Menu parent) {
this.parent = parent;
}
/**
* 設置標題
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
} 測試package entity;
/**
* 測試類
* @author Administrator
*
*/
public class Test { /**
* @param args
*/
public static void main(String[] args) {
/**
* 創建一個虛擬的父菜單 用於存放一級菜單 menu01 和 menu02
*/
Menu root = new Menu();
/**
* 創建兩個一級菜單
*/
Menu menu01 = new Menu("一級菜單01");
Menu menu02 = new Menu("一級菜單02");
/**
* 加入虛擬菜單
*/
root.addChild(menu01);
root.addChild(menu02);
/**
* 為兩個一級菜單分別添加兩個子菜單 並返回該子菜單 需要進一步處理的時候 才接收返回的對象 否則只要調用方法
*/
Menu menu0101 = menu01.addChild(new Menu("二級菜單0101"));
menu01.addChild(new Menu("二級菜單0102"));
menu02.addChild(new Menu("二級菜單0201"));
Menu menu0202 = menu02.addChild(new Menu("二級菜單0202"));
/**
* 添加三級菜單
*/
menu0101.addChild(new Menu("三級菜單010101"));
menu0202.addChild(new Menu("三級菜單020201"));
/**
* 列印樹形結構
*/
showMenu(root);
} /**
* 遞歸遍歷某個菜單下的菜單樹
*
* @param menu
* 根菜單
*/
private static void showMenu(Menu menu) {
for (Menu child : menu.getChilds()) {
showMenu(child, 0);
}
} private static void showMenu(Menu menu, int tabNum) {
for (int i = 0; i < tabNum; i++)
System.out.print("\t");
System.out.println(menu.getTitle());
for (Menu child : menu.getChilds())
// 遞歸調用
showMenu(child, tabNum + 1);
}}
控制台輸出結果 一級菜單01 二級菜單0101
三級菜單010101
二級菜單0102一級菜單02
二級菜單0201
二級菜單0202
三級菜單020201

6. Java怎麼實現輸出是一個tree結構

樹節點類:

packagecn.com.tree;

publicclassNode{
privateIntegerid;
privateIntegerparentId;
privateStringname;
privateStringlink;

publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicIntegergetParentId(){
returnparentId;
}
publicvoidsetParentId(IntegerparentId){
this.parentId=parentId;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetLink(){
returnlink;
}
publicvoidsetLink(Stringlink){
this.link=link;
}
}

輸出樹形菜單類:

packagecn.com.tree;

importjava.util.ArrayList;
importjava.util.List;

publicclassTree{
privateStringBufferhtml=newStringBuffer();
privateList<Node>nodes;

publicTree(List<Node>nodes){
this.nodes=nodes;
}

publicStringbuildTree(){
html.append("<ul>");
for(Nodenode:nodes){
Integerid=node.getId();
if(node.getParentId()==null){
html.append(" <liid='"+id+"'>"+node.getName()+"</li>");
build(node);
}
}
html.append(" </ul>");
returnhtml.toString();
}

privatevoidbuild(Nodenode){
List<Node>children=getChildren(node);
if(!children.isEmpty()){
html.append(" <ul>");
for(Nodechild:children){
Integerid=child.getId();
html.append(" <liid='"+id+"'>"+child.getName()+"</li>");
build(child);
}
html.append(" </ul>");
}
}

privateList<Node>getChildren(Nodenode){
List<Node>children=newArrayList<Node>();
Integerid=node.getId();
for(Nodechild:nodes){
if(id.equals(child.getParentId())){
children.add(child);
}
}
returnchildren;
}
}

測試類:

packagezzj.test;

importjava.util.ArrayList;
importjava.util.List;

importcn.com.tree.Node;
importcn.com.tree.Tree;


publicclassTest{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
List<Node>nodes=newArrayList<Node>();

Nodenode1=newNode();
node1.setId(1);
node1.setName("node1");
node1.setParentId(null);
node1.setLink(null);
nodes.add(node1);

Nodenode11=newNode();
node11.setId(11);
node11.setName("node11");
node11.setParentId(1);
node11.setLink(null);
nodes.add(node11);

Nodenode111=newNode();
node111.setId(111);
node111.setName("node111");
node111.setParentId(11);
node111.setLink(null);
nodes.add(node111);

Nodenode12=newNode();
node12.setId(12);
node12.setName("node12");
node12.setParentId(1);
node12.setLink(null);
nodes.add(node12);

Nodenode2=newNode();
node2.setId(2);
node2.setName("node2");
node2.setParentId(null);
node2.setLink(null);
nodes.add(node2);

Nodenode21=newNode();
node21.setId(21);
node21.setName("node21");
node21.setParentId(2);
node21.setLink(null);
nodes.add(node21);

Nodenode3=newNode();
node3.setId(3);
node3.setName("node3");
node3.setParentId(null);
node3.setLink(null);
nodes.add(node3);

Treetree=newTree(nodes);
System.out.println(tree.buildTree());
}
}

7. java 大數據樹形結構

你使用根節點?一般根節點都是介面,怎麼可能實例化,一般在設計的時候這種情況是被考慮的,所以很多時候我們學習一個技術就是學習他的 介面,然後實例化他給的 各種 類.
包括以後我們工作做項目,設計的時候也是 基於 三層數據結構的, 底層DAO層就是介面

8. java怎麼對樹形結構進行遍歷

java">import java.util.Iterator;
import java.util.Random;
import java.util.TreeSet;
public class Demo{
public static void main(String[] args) throws Exception {
TreeSet<Integer> ts = new TreeSet<Integer>();
for(int i = 0; i < 10; i++){
ts.add(new Random().nextInt(999));
}
for(Iterator<Integer> it = ts.iterator(); it.hasNext();){
System.out.println(it.next());
}
}
}

9. 樹在java中的應用有哪些

首先:樹與線性表、棧、隊列等線性結構不同,樹是一種非線性結構。一棵樹只有一個根節點,如果一棵樹有了多個根節點,那它已經不再是一棵樹了,而是多棵樹的集合,也被稱為森林。
其次:java中樹的應用主要有:菜單樹,還有許可權樹,商品分類列表也是樹結構。

10. 用Java實現一個樹形結構,並對其進行遍歷

importjava.util.Iterator;
importjava.util.Random;
importjava.util.TreeSet;

publicclassDemo{
publicstaticvoidmain(String[]args)throwsException{
TreeSet<Integer>ts=newTreeSet<Integer>();
for(inti=0;i<10;i++){
ts.add(newRandom().nextInt(999));
}
for(Iterator<Integer>it=ts.iterator();it.hasNext();){
System.out.println(it.next());
}
}
}

//上面是利用TreeSet進行簡單的二叉樹實現,另有遍歷,當然遍歷是自然順序。

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

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:250
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705