对于n=4,我们需要插入0,2,4,6,8,10,12,14,但按这个顺序;8,4,12,0,2,6,10,14,或6,2,10,0,4,8,14,12将产生一个同样平衡的树。目前,我只加2^(n-1),即8,然后2^(n-2)的每秒倍数,即4,12,然后2^(n-3)的每秒倍数,即2,6,10,14等等,然后在末尾加0。下面是C++中的代码,但我并不太担心语言细节,更多的是算法本身。INT64 cur = diff; Node
我正在尝试编写一个递归算法,它返回将给定数字写为不同数字的和的所有可能性。例如,如果给定的数字是8,我的程序应该返回(1,7)(1,2,5)(1,3,4)(2,6)(3,5)。就我所做的工作而言,我只能得到(在这个例子中)(1,7)(1,(2,5)(3,4))(2,6)(3,5),和组合,因为给定的数字更高,所以组合更加重叠。我怎么才能得到正确的结果而不是我的呢?String str = ""; while ( i < ha