-2
比方說,我們有一個基本的二進制樹,能夠被搜索到遞歸:設計更高效的樹
class BinaryTree{
private int Element;
private BinaryTree LeftNode;
private BinaryTree RightNode;
//Class Constructors
//Class Methods
}
我最初得知這個設計二叉樹的和一般的樹主要是因爲它很簡單,易於使用。然而,有人用這個設計討論過,每次我展開樹,也就是將BinaryTree的一個實例添加到LeftNode或RightNode中時,另一個BinaryTree的實例化也需要保留內存空間來存儲該類的所有非靜態方法BinaryTree 。隨着樹呈指數增長,所需空間的數量也會大幅增加。
是否有更有效的方法來實現遞歸樹設計,同時保持對面向對象範例的真實性?
什麼?這種擔憂沒有任何意義。樹不是「呈指數級增長」,並且您不需要額外的內存空間來存儲_methods._您已經擁有了正確,高效的實現。 「 –
」還需要保留內存空間來存儲類BinaryTree的所有非靜態方法「 - 不。方法在實例中不佔用空間。 – davmac
請參閱http://stackoverflow.com/questions/730321/what-is-the-memory-overhead-of-a-java-method – fabian