卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java實(shí)現(xiàn)簡單的二叉樹 層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?

層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?遞歸遍歷二叉樹程序很短,易懂。在性能方面,遞歸速度快,占用內(nèi)存少。但遞歸程序包含深度優(yōu)先和廣度優(yōu)先的遍歷方法,比較復(fù)雜,容易出錯?,F(xiàn)在CPU速度非常快,堆棧

層序遍歷二叉樹與經(jīng)典遞歸遍歷的性能差距多大?

遞歸遍歷二叉樹程序很短,易懂。在性能方面,遞歸速度快,占用內(nèi)存少。但遞歸程序包含深度優(yōu)先和廣度優(yōu)先的遍歷方法,比較復(fù)雜,容易出錯。

現(xiàn)在CPU速度非???,堆??臻g非常大。性能差異可以忽略不計(jì)。

或遞歸遍歷二叉樹程序可讀性更好。

二叉樹的層次遍歷?

設(shè)計(jì)一個遍歷二叉樹的算法(從左到右訪問同一層)。思路:用隊(duì)列保存當(dāng)前節(jié)點(diǎn)的左右子節(jié)點(diǎn),實(shí)現(xiàn)序列遍歷。

Void hierarchy BiTree(BiTree root){

linkqueue*q//保存當(dāng)前節(jié)點(diǎn)左右子節(jié)點(diǎn)的隊(duì)列

initqueue(q)//初始化隊(duì)列

if(root==null)return//樹為空時返回

binode*P=root//將樹根臨時保存到指針P

visit(P->data)//訪問根節(jié)點(diǎn)

if(P->lchild)enqueue(Q,P->lchild)//如果有左子級,左子級進(jìn)入隊(duì)列

if(P->rchild)enqueue(Q,P->rchild)//如果有右子級,右子級進(jìn)入隊(duì)列

while(!Queueempty(q))//如果隊(duì)列不為空,則序列遍歷{dequeue(q,P)//出隊(duì)列

visit(P->data)//訪問當(dāng)前節(jié)點(diǎn)

if(P->lchild)enqueue(q,P->lchild)//如果有左子級,則左子級進(jìn)入隊(duì)列

if(P->rchild)enqueue(q,P->rchild)//如果有左子級右子,右子進(jìn)入隊(duì)列

}

destroy queue(q)//釋放隊(duì)列空間

return

這很詳細(xì)!你能理解的!加油!