java實(shí)現(xiàn)簡(jiǎn)單的二叉樹 java中把數(shù)組以二叉樹形式打印出來(lái)?
java中把數(shù)組以二叉樹形式打印出來(lái)?您的意思是以數(shù)組的形式存儲(chǔ)二叉樹,這需要利用完全二叉樹的特性。完全二叉樹通常用數(shù)組代替鏈表進(jìn)行存儲(chǔ),其存儲(chǔ)結(jié)構(gòu)如下:樹:數(shù)組[1.. n] 樹[i]的最長(zhǎng){n:i
java中把數(shù)組以二叉樹形式打印出來(lái)?
您的意思是以數(shù)組的形式存儲(chǔ)二叉樹,這需要利用完全二叉樹的特性。完全二叉樹通常用數(shù)組代替鏈表進(jìn)行存儲(chǔ),其存儲(chǔ)結(jié)構(gòu)如下:樹:數(shù)組[1.. n] 樹[i]的最長(zhǎng){n:integer n>=1}具有以下特征:(1)如果i是奇數(shù)且i>為1,則樹的左兄弟是樹[i-1];[R(2)如果我是偶數(shù)并且我
導(dǎo)入java.util.LinkedList
public class LevelOrder
{
public void levelIterator(BiTree root)
{
if(root==null)
{
return
}
LinkedList<BiTree> queue=new LinkedList<BiTree>()
BiTree current=null隊(duì)列.報(bào)價(jià)(root)//對(duì)根進(jìn)行排隊(duì)節(jié)點(diǎn)
while(!queue.i空())
{
當(dāng)前=隊(duì)列.輪詢()//退出team head元素并訪問(wèn)系統(tǒng)打印( 當(dāng)前值“-->”)
如果(當(dāng)前。左側(cè)! =null)//如果當(dāng)前節(jié)點(diǎn)的左節(jié)點(diǎn)不為空,則加入隊(duì)列
{隊(duì)列.報(bào)價(jià)( 當(dāng)前。左側(cè))
}
如果(當(dāng)前。右!=Null)//如果當(dāng)前節(jié)點(diǎn)的右節(jié)點(diǎn)不為空,則對(duì)右節(jié)點(diǎn)進(jìn)行排隊(duì)
{隊(duì)列.報(bào)價(jià)( 當(dāng)前。右)
}
}
}
}