生成樹的java代碼 生成樹個(gè)數(shù)

Java生成樹中的從根到葉子節(jié)點(diǎn)的所有路徑

方法是在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();

}

}

用Java實(shí)現(xiàn)生成樹協(xié)議

 快速生成樹協(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ī)制。 具體 參考 下

用java寫了一個(gè)最小生成樹問題的程序,在進(jìn)行快速排序邊長(zhǎng)的權(quán)重時(shí),出現(xiàn)了下面的報(bào)錯(cuò)

說明 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的,,,,,,,,,都還沒做

javascript框架jquery ztree中的simpledata參數(shù)是什么意思?

首先在頁(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)

手機(jī)網(wǎng)站建設(shè)