2 回答
TA貢獻1752條經(jīng)驗 獲得超4個贊
如果要打印右側(cè)子樹中的節(jié)點,則只需調(diào)用與他的右側(cè)節(jié)點對應的樹的屬性即可。print_tree
首先,定義一個print_tree方法:
def print_tree(self) -> None:
if self.is_empty():
pass
else:
# you are free to do additional things here such as print node value or etc..
self._left.print_tree()
self._right.print_tree()
然后是print_right_subtree方法:
def print_right_subtree(self) -> None:
self._right.print_tree() # which correspond to the print_tree of the _right attribute
TA貢獻1946條經(jīng)驗 獲得超3個贊
由于您不是在要求代碼本身,而是在尋求幫助來編寫自己的代碼......
有一百萬種方法可以做到這一點。有些更優(yōu)化。有些寫得更快。這完全取決于您的需求。
在這里,我認為你需要了解一棵樹是什么。你的任何子樹,本身就是一棵樹。所以,你必須明白,這確實意味著任何事情。例如,只有每棵樹的正確分支?還是第一個右枝的所有樹?也許是第二個分支?
print the right tree如果我做對了(Da bum tss?。?,你想在你的架構上打印樹的正確分支,稱為根。為什么不說呢?這樣,即使您想從子樹開始打印樹,也很容易做到這一點!
I want to print all the numbers above 41您需要可視化您的算法將執(zhí)行的操作。在這里,您要打印 41(主樹的右分支)以上的所有數(shù)字。讓我為此編寫偽代碼(假設您已經(jīng)在值為65的根節(jié)點上:
我想按升序?qū)懰袛?shù)字...
我的根是65。我的左邊是50歲,我的右邊是91歲。
哪個是最低的?50. 它還有其他分支嗎?不。打印它!
我的根仍然是65,我的權利是91。我的根低于我的樹枝?打印它!然后轉(zhuǎn)到正確的分支。
我的主要現(xiàn)在是91,我的左邊是72,我的右邊是99。
哪個是最低的?你得到了遞歸。
即使經(jīng)過所有這些,您仍然可以選擇使另一個更快 - 編寫,而不是計算!- 解決方案。從您需要的分支中收集所有值,并打印排序的值!
添加回答
舉報
