在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  C  C++/ 將一棵二叉樹擴(kuò)充為滿二叉樹

將一棵二叉樹擴(kuò)充為滿二叉樹

我只想到一個(gè)方法,先計(jì)算層數(shù),然后遞歸往下補(bǔ),但是感覺效率太低了,請(qǐng)問有沒有好一點(diǎn)的方法?

回答
編輯回答
替身

樓主的意思是將二叉樹的空節(jié)點(diǎn)也表示出來嗎?比如說:

               1
              / \
                 3
                / \
               4   5

表示成

               1
             /   \
           nil    3
           / \   / \
          nilnil4  5
          

這樣嗎。
個(gè)人想法滿二叉樹可以用數(shù)組保存,那么樓主可以將數(shù)組將二叉樹擴(kuò)充為滿二叉樹

2017年3月28日 23:36
編輯回答
老梗

滿二叉樹最適合線性存儲(chǔ),所以不必拘泥于原先的存儲(chǔ)方法。而且從線性結(jié)構(gòu)恢復(fù)為鏈?zhǔn)浇Y(jié)構(gòu)也很容易。
建立一個(gè)大小足夠的數(shù)組,或者一個(gè)可增長(zhǎng)的數(shù)組,每個(gè)元素的初值都是空值。
把根節(jié)點(diǎn)存儲(chǔ)在下標(biāo)0的位置;若節(jié)點(diǎn)存儲(chǔ)在了下標(biāo)k的位置,那么其左孩子存儲(chǔ)在2k+1的位置,右孩子存儲(chǔ)在第2k+2的位置。

2017年8月21日 00:26