c語(yǔ)言二叉樹 如何將動(dòng)態(tài)二叉樹轉(zhuǎn)換為靜態(tài)二叉鏈表?
如何將動(dòng)態(tài)二叉樹轉(zhuǎn)換為靜態(tài)二叉鏈表?創(chuàng)建一個(gè)二叉樹,分析動(dòng)態(tài)二叉樹,并用靜態(tài)二叉表表示。在二叉樹的動(dòng)態(tài)二叉表結(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)有三個(gè)字段:data、lchild和rchild。靜態(tài)二叉列表使用數(shù)組作為存
如何將動(dòng)態(tài)二叉樹轉(zhuǎn)換為靜態(tài)二叉鏈表?
創(chuàng)建一個(gè)二叉樹,分析動(dòng)態(tài)二叉樹,并用靜態(tài)二叉表表示。在二叉樹的動(dòng)態(tài)二叉表結(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)有三個(gè)字段:data、lchild和rchild。靜態(tài)二叉列表使用數(shù)組作為存儲(chǔ)空間,每個(gè)數(shù)組元素存儲(chǔ)一個(gè)二叉樹節(jié)點(diǎn),并且還有三個(gè)字段:data、lchild、rchild。Lchild和rdhild分別用于存儲(chǔ)左、右子級(jí)的下標(biāo)。
怎么將二叉樹順序存儲(chǔ)結(jié)構(gòu)圖轉(zhuǎn)化為二叉樹結(jié)構(gòu)呢?
。存儲(chǔ)結(jié)構(gòu)值為:假設(shè)節(jié)點(diǎn)在數(shù)組中的位置為I,則其左子位置為2I,右子位置為2I 1。(I從1開始)。所以您只需要?jiǎng)?chuàng)建一個(gè)數(shù)組,從鏈?zhǔn)酱鎯?chǔ)的根節(jié)點(diǎn)開始,按中間順序遍歷樹,然后按中間順序存儲(chǔ)在數(shù)組中。這樣就可以改變順序存儲(chǔ)結(jié)構(gòu)。你可以查看相關(guān)的遍歷信息,按遍歷的順序即訪問的順序是左子根右子。希望能對(duì)你有所幫助。
java中把數(shù)組以二叉樹形式打印出來?
您的意思是以數(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];(2)如果i是偶數(shù)且i