方法是在dfs的過程中維護(hù)dfs的路徑,到達(dá)葉子結(jié)點(diǎn)時(shí)將路徑加入到答案中,具體見代碼的注釋。
在高青等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),高青網(wǎng)站建設(shè)費(fèi)用合理。
輸入格式為:
7?A
A?B
C?A
D?B
E?B
C?F
C?G
其中,第一行表示結(jié)點(diǎn)數(shù)量n和根結(jié)點(diǎn)編號(hào),第[2..n + 1]行每行兩個(gè)字符u和v,表示樹邊。
import?java.io.File;
import?java.io.FileNotFoundException;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Scanner;
public?class?Main?{
static?final?int?maxn?=?1000;
int?n;????????????????//?樹的結(jié)點(diǎn)個(gè)數(shù)
char?root;????????????//?樹的根
ListListCharacter?ans?=?new?ArrayListListCharacter();????//?結(jié)果,存放所有路徑
boolean[][]?G?=?new?boolean[maxn][maxn];????????????????????????//?鄰接矩陣
/**
*?dfs
*?@param?u????????當(dāng)前到達(dá)的結(jié)點(diǎn)
*?@param?fa????當(dāng)前結(jié)點(diǎn)的父節(jié)點(diǎn)
*?@param?path????根到fa的路徑
*/
void?dfs(char?u,?char?fa,?ListCharacter?path)?{
path.add(u);
boolean?leaf?=?true;????????????//?u為葉子結(jié)點(diǎn)
for(char?v?=?'A';?v?=?'Z';?++v)?{
if(G[u][v]??v?!=?fa)?{????//?鄰接矩陣中有別的邊
leaf?=?false;????????????//?u不是葉子結(jié)點(diǎn)
dfs(v,?u,?path);
}
}
if(leaf)?{????????????????????????//?u為葉子結(jié)點(diǎn),將路徑加入到答案
ListCharacter?pt?=?new?ArrayListCharacter();
for(Character?c?:?path)?pt.add(c);
ans.add(pt);
}
path.remove(path.size()?-?1);
}
public?void?go()?throws?FileNotFoundException
{
Scanner?in?=?new?Scanner(new?File("data.in"));
String?s;????????????????????????//?進(jìn)行輸入的處理時(shí)的臨時(shí)變量
n?=?in.nextInt();????????????????//?獲取結(jié)點(diǎn)個(gè)數(shù)
s?=?in.next();?root?=?s.charAt(0);????//?獲取根
for(int?i?=?0;?i??n?-?1;?++i)?{
char?u,?v;
s?=?in.next();?u?=?s.charAt(0);????//?獲取邊,并在鄰接矩陣中做標(biāo)記
s?=?in.next();?v?=?s.charAt(0);
G[u][v]?=?G[v][u]?=?true;
}
ListCharacter?path?=?new?ArrayListCharacter();
dfs(root,?'0',?path);
for(int?i?=?0;?i??ans.size();?++i)?{????//?輸出答案
for(Character?c:?ans.get(i))
System.out.print(c);
System.out.println();
}
in.close();
}
public?static?void?main(String[]?args)?throws?FileNotFoundException{
new?Main().go();
}
}
快速生成樹協(xié)議(RSTP)STP并不是已經(jīng)淘汰不用,實(shí)際上不少?gòu)S家目前還僅支持STP。STP的最大缺點(diǎn)就是他的收斂時(shí)間太長(zhǎng),對(duì)于現(xiàn)在網(wǎng)絡(luò)要求靠可靠性來說,這是不允許的,快速生成樹的目的就是加快以太網(wǎng)環(huán)路故障收斂的速度。1.RSTP 5種端口類型STP定義了4種不同的端口狀態(tài),監(jiān)聽(Listening),學(xué)習(xí)(Learning),阻斷(Blocking)和轉(zhuǎn)發(fā)(Forwarding),其端口狀態(tài)表現(xiàn)為在網(wǎng)絡(luò)拓?fù)渲卸丝跔顟B(tài)混合(阻斷或轉(zhuǎn)發(fā)),在拓?fù)渲械慕巧?根端口、指定端口等等)。在操作上看,阻斷狀態(tài)和監(jiān)聽狀態(tài)沒有區(qū)別,都是丟棄數(shù)據(jù)幀而且不學(xué)習(xí)MAC地址,在轉(zhuǎn)發(fā)狀態(tài)下,無法知道該端口是根端口還是指定端口。表8-20中看RSTP的端口狀態(tài)只有三種狀態(tài),Discarding、Leaning和Forwarding。表8-20 STP和RSTP端口狀態(tài)比較RSTP有五種端口類型。根端口和指定端口這兩個(gè)角色在RSTP中被保留,阻斷端口分成備份和替換端口角色。生成樹算法(STA)使用BPDU來決定端口的角色,端口類型也是通過比較端口中保存的BPDUB來確定哪個(gè)比其他的更優(yōu)先。1)根端口非根橋收到最優(yōu)的BPDU配置信息的端口為根端口,即到根橋開銷最小的端口,這點(diǎn)和STP一樣。請(qǐng)注意圖8-16上方的交換機(jī),根橋沒有根端口。按照STP的選擇根端口的原則,SW-1和SW-2和根連接的端口為根端口。2)指定端口與STP一樣,每個(gè)以太網(wǎng)網(wǎng)段段內(nèi)必須有一個(gè)指定端口。假設(shè)SW-1的BID比SW-2 優(yōu)先,而且SW-1的P1口端口ID比P2優(yōu)先級(jí)高,那么P1為指定端口,如圖8-17所示。 圖8-16 RSTP根端口 圖8-17 指定端口的選擇3)替換端口如果一個(gè)端口收到另外一個(gè)網(wǎng)橋的更好的 BPDU,但不是最好的,那么這個(gè)端口成為替換端口,如圖8-18所示。對(duì)于SW-2來說,端口P3收到的BPDU比自己優(yōu)先,自己為次優(yōu)先,P3為替換端口。4)備份端口如果一個(gè)端口收到同一個(gè)網(wǎng)橋的更好 BPDU,那么這個(gè)端口成為備份端。當(dāng)兩個(gè)端口被一個(gè)點(diǎn)到點(diǎn)鏈路的一個(gè)環(huán)路連在一起時(shí),或者當(dāng)一個(gè)交換機(jī)有兩個(gè)或多個(gè)到共享局域網(wǎng)段的連接時(shí),一個(gè)備份端口才能存在。如圖8-19所示,SW-1的P1和P2口同時(shí)接入到以太網(wǎng)的同一網(wǎng)段,P1為指定端口,P2 優(yōu)先級(jí)低,則P2端口為備份端口。 圖8-18 替換端口的選擇 圖8-19 備份端口的選擇5)禁用端口在快速生成樹協(xié)議應(yīng)用的網(wǎng)絡(luò)運(yùn)行中不擔(dān)當(dāng)任何角色。2.BPDU更新與變化RSTP添加標(biāo)志位,如圖8-20所示。在STP中,標(biāo)志位只有0為TC和7為TCA使用,RSTP使用其中保留的6位。另外,RSTP在BPDU指定了端口的角色和端口狀態(tài),并且采用提議/同意的控制機(jī)制。 具體 參考 下
說明 edges[] edgelist1= g.listedges(graph1); 中的 listedges 方法有問題
class graph {
public double[][] generate(int n) {
return null;
}
public double[] listlength(double[][] d) {
return null;
}
public edges[] listedges(double [][] d) {
return null;
}
}
全返回null的,,,,,,,,,都還沒做
首先在頁(yè)面上有ul/標(biāo)簽
ulid="tree"class="ztree"/ul
2、定義ztree的配置參數(shù)
varsetting={
//check屬性放在data屬性之后,復(fù)選框不起作用
check:{
enable:true
},
data:{
simpleData:{
enable:true
},
}
};
核心參數(shù):zTreeNodes
zTree
的全部節(jié)點(diǎn)數(shù)據(jù)集合,采用由JSON對(duì)象組成的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單的說:這里使用Json格式保存了樹的所有信息
zTreeNodes的格式分為兩種:利用Json格式嵌套體現(xiàn)父子關(guān)系和Array簡(jiǎn)單格式
①帶有父子關(guān)系的標(biāo)準(zhǔn)
zTreeNodes舉例:
Js代碼
varzTreeNodes=[
{"id":1,"name":"test1",
"nodes":[
{"id":11,"name":"test11","nodes":[
{"id":111,
"name":"test111"}
]},
{"id":12,"name":"test12"}
]},
......
];
②帶有父子關(guān)系的簡(jiǎn)單Array格式(isSimpleData)的zTreeNodes舉例:
Js代碼
var
treeNodes=[
{"id":1,"pId":0,"name":"test1"},
{"id":11,"pId":1,
"name":"test11"},
{"id":12,"pId":1,"name":"test12"},
{"id":111,
"pId":11,"name":"test111"},
......
];
【實(shí)例一】(Java代碼)
①在頁(yè)面引用zTree的js和css:
Html代碼
!--ZTree樹形插件
--
linkrel="stylesheet"
href="%=root%/Web/common/css/zTreeStyle/zTreeStyle.css"
type="text/css"
!--linkrel="stylesheet"
href="%=root%/Web/common/css/zTreeStyle/zTreeIcons.css"
type="text/css"--
scripttype="text/javascript"
src="%=root%/Web/common/js/jquery-ztree-2.5.min.js"/script
②在script腳本中定義setting和zTreeNodes
Java代碼
varsetting={
isSimpleData:true,//數(shù)據(jù)是否采用簡(jiǎn)單Array格式,默認(rèn)false
treeNodeKey:"id",
//在isSimpleData格式下,當(dāng)前節(jié)點(diǎn)id屬性
treeNodeParentKey:"pId",
//在isSimpleData格式下,當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)id屬性
showLine:true,//是否顯示節(jié)點(diǎn)間的連線
checkable
:true//每個(gè)節(jié)點(diǎn)上是否顯示CheckBox
};
vartreeNodes=[
{"id":1,
"pId":0,"name":"test1"},
{"id":11,"pId":1,"name":"test11"},
{"id":12,
"pId":1,"name":"test12"},
{"id":111,"pId":11,"name":"test111"},
];
③在進(jìn)入頁(yè)面時(shí)生成樹結(jié)構(gòu):
Js代碼
varzTree;
Js代碼
$(function(){
zTree=
$("#tree").zTree(setting,treeNodes);
});
網(wǎng)站題目:生成樹的java代碼 生成樹個(gè)數(shù)
網(wǎng)站鏈接:http://muchs.cn/article4/dohspoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、全網(wǎng)營(yíng)銷推廣、建站公司、云服務(wù)器、企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)