java生成树
㈠ 用java解析节点名不同的xml,并生成树结构,显示在页面上。点击节点名会显示它的属性。
publicclassXmlData{
Documentdocument=null;
publicbooleanopen(StringfileName)throwsException{
try{
=DocumentBuilderFactory
.newInstance();
=documentBuilderFactory
.newDocumentBuilder();
document=documentBuilder.parse(newFile(fileName));
returntrue;
}catch(Exceptione){
returnfalse;
}
}
publicList<String>showXml(StringfileName)throwsException{
this.open(fileName);
NodeListnodeList=document.getElementsByTagName("*");
Nodenode=nodeList.item(0);
List<String>list=newArrayList<String>();
for(intj=0;j<nodeList.getLength();j++){
node=nodeList.item(j);
if(nodeinstanceofElement){
Stringshow=node.getNodeName()+":"
+node.getFirstChild().getNodeValue();
list.add(show);
}
}
returnlist;
}
}
㈡ java后台动态生成树,mysql语句怎么写啊。新手。
一般都是每条记录存个parent_id ,然后从根节点一层一层找。在java中一层层递归再组成列表展示在前台。或者用ajax,每次点击向下找一层。
㈢ 用java编写 用正则表达式获取XML中得节点的内容,生成树,然后把生成的树遍历
有各种xml库不用,用正则? 蛋疼
㈣ 急求:怎么使用ZK技术在java代码中动态生成树
哥们 动态树的这个搞好了么 现在急需 可以把做好的例子发我邮箱么 [email protected]
㈤ 用Java实现生成树协议
快速生成树协议(RSTP)STP并不是已经淘汰不用,实际上不少厂家目前还仅支持STP。STP的最大缺点就是他的收敛时间太长,对于现在网络要求靠可靠性来说,这是不允许的,快速生成树的目的就是加快以太网环路故障收敛的速度。1.RSTP 5种端口类型STP定义了4种不同的端口状态,监听(Listening),学习(Learning),阻断(Blocking)和转发(Forwarding),其端口状态表现为在网络拓扑中端口状态混合(阻断或转发),在拓扑中的角色(根端口、指定端口等等)。在操作上看,阻断状态和监听状态没有区别,都是丢弃数据帧而且不学习MAC地址,在转发状态下,无法知道该端口是根端口还是指定端口。表8-20中看RSTP的端口状态只有三种状态,Discarding、Leaning和Forwarding。表8-20 STP和RSTP端口状态比较RSTP有五种端口类型。根端口和指定端口这两个角色在RSTP中被保留,阻断端口分成备份和替换端口角色。生成树算法(STA)使用BPDU来决定端口的角色,端口类型也是通过比较端口中保存的BPDUB来确定哪个比其他的更优先。1)根端口非根桥收到最优的BPDU配置信息的端口为根端口,即到根桥开销最小的端口,这点和STP一样。请注意图8-16上方的交换机,根桥没有根端口。按照STP的选择根端口的原则,SW-1和SW-2和根连接的端口为根端口。2)指定端口与STP一样,每个以太网网段段内必须有一个指定端口。假设SW-1的BID比SW-2 优先,而且SW-1的P1口端口ID比P2优先级高,那么P1为指定端口,如图8-17所示。 图8-16 RSTP根端口 图8-17 指定端口的选择3)替换端口如果一个端口收到另外一个网桥的更好的 BPDU,但不是最好的,那么这个端口成为替换端口,如图8-18所示。对于SW-2来说,端口P3收到的BPDU比自己优先,自己为次优先,P3为替换端口。4)备份端口如果一个端口收到同一个网桥的更好 BPDU,那么这个端口成为备份端。当两个端口被一个点到点链路的一个环路连在一起时,或者当一个交换机有两个或多个到共享局域网段的连接时,一个备份端口才能存在。如图8-19所示,SW-1的P1和P2口同时接入到以太网的同一网段,P1为指定端口,P2 优先级低,则P2端口为备份端口。 图8-18 替换端口的选择 图8-19 备份端口的选择5)禁用端口在快速生成树协议应用的网络运行中不担当任何角色。2.BPDU更新与变化RSTP添加标志位,如图8-20所示。在STP中,标志位只有0为TC和7为TCA使用,RSTP使用其中保留的6位。另外,RSTP在BPDU指定了端口的角色和端口状态,并且采用提议/同意的控制机制。 具体 参考 下 http://it.kswchina.com/skrz/zh/507188.html
㈥ 在java中用extjs动态生成树怎么做(树有5个节点,这5个节点的内容要从action中读取)
extjs 发送一个ajax请求到java的后台,通过action返回一个json对象或者前端能解析的数据就可以了。
同时树的结构在ajax请救时,需要设置同步模式,等待数据加载完成,再子节点。
㈦ Java生成树中的从根到叶子节点的所有路径
方法是在dfs的过程中维护dfs的路径,到达叶子结点时将路径加入到答案中,具体见代码的注释。
输入格式为:
7A
AB
CA
DB
EB
CF
CG
其中,第一行表示结点数量n和根结点编号,第[2..n + 1]行每行两个字符u和v,表示树边。
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
publicclassMain{
staticfinalintmaxn=1000;
intn;//树的结点个数
charroot;//树的根
List<List<Character>>ans=newArrayList<List<Character>>();//结果,存放所有路径
boolean[][]G=newboolean[maxn][maxn];//邻接矩阵
/**
*dfs
*@paramu当前到达的结点
*@paramfa当前结点的父节点
*@parampath根到fa的路径
*/
voiddfs(charu,charfa,List<Character>path){
path.add(u);
booleanleaf=true;//u为叶子结点
for(charv='A';v<='Z';++v){
if(G[u][v]&&v!=fa){//邻接矩阵中有别的边
leaf=false;//u不是叶子结点
dfs(v,u,path);
}
}
if(leaf){//u为叶子结点,将路径加入到答案
List<Character>pt=newArrayList<Character>();
for(Characterc:path)pt.add(c);
ans.add(pt);
}
path.remove(path.size()-1);
}
publicvoidgo()throwsFileNotFoundException
{
Scannerin=newScanner(newFile("data.in"));
Strings;//进行输入的处理时的临时变量
n=in.nextInt();//获取结点个数
s=in.next();root=s.charAt(0);//获取根
for(inti=0;i<n-1;++i){
charu,v;
s=in.next();u=s.charAt(0);//获取边,并在邻接矩阵中做标记
s=in.next();v=s.charAt(0);
G[u][v]=G[v][u]=true;
}
List<Character>path=newArrayList<Character>();
dfs(root,'0',path);
for(inti=0;i<ans.size();++i){//输出答案
for(Characterc:ans.get(i))
System.out.print(c);
System.out.println();
}
in.close();
}
publicstaticvoidmain(String[]args)throwsFileNotFoundException{
newMain().go();
}
}
㈧ java生成树结构传到前台展示
如果是zTree则后台只需要传一个数组形式的JSON就可以搞定,{name: '父节点1', children: [ {name: '子节点1'}, {name: '子节点2'} ]}这种写法找父子关系不得找死。
下面这种JSON最方便
var nodes = [
{id:1, pId:0, name: "父节点1"},
{id:11, pId:1, name: "子节点1"},
{id:12, pId:1, name: "子节点2"}
];
后台拼接JSON串代码也很简单啊,[id=1 pId=-1 name=名称1]为一条数据放入数组或List中,[id=101 pId=1 name=名称2]为一条数据放入集合,依次类推就是一个数据集了,然后for循环拼装JSON即可:
StringBuilder sb = new StringBuilder();
sb.append("[");
for(...){
sb.append("{\"id\":").append(id).append(",\"pId\":").append(pId).append(",\"name\":\"").append(name).append("\"},");
}
//注意去掉最后一个逗号
......
sb.append("]")
㈨ easyui生成的树为什么会再次调用java方法重新再次生成树
是你java有问题吧,默认easyui的节点是ajax可动态加载的,你点击最后的节点,他会请求server(你没有设置那么是当前的url)查找子树,你的server端总是返回这段值,当然就错了。
㈩ 有没有Java类可以解析html文件并生成树
Java类可以解析html文件并生成树
看CSDN上的解释,望能帮到你,烦请采纳