注意:这是IS作业,所以请不要直接给我答案,但指针会有所帮助。
(测试每种方法以确保其正常工作。)
生成一个二元搜索,其中100个元素以正确的顺序添加 - 以正确的顺序将数字1到100添加到树中添加1,然后是2,然后是3,等等。
生成二元搜索,其中100个元素按逆序添加 - 添加数字100,99,98等。
- 醇>
使用100个随机生成的元素生成二进制搜索。
我在问题中说线性数组的原因是因为根必须是数组中的第一个元素,然后添加其余元素。
我没有正确测试树是否正确测试所需的所有其他方法,我即将离开工作。但是,我发布的算法起点低于我认为可行,但不确定。
threshold = 10**6
value = 0
while value < 10*9:
if value > threshold:
print "%d exceeded %d" % (value, threshold)
threshold += 10**6
value += random.randint(0, 1000)
这几乎就是整个算法,我不得不再做一次,但要反转&lt;和&gt;迹象(如果这是正确的)。我是否在使用此算法的正确途径?
按要求添加节点类。
public BST(int[] numbers)
{
node root;
node currentParent;
node previousParent = null;
int i = 1; // skip the root, that will be handled manualy
root = new node(numbers[0]); // first element is the root
currentParent = root;
// handle right hand side of binary tree first
while (i > root.getValue())
{
while (i > currentParent.getValue())
{
node newNode = new node (numbers[i]);
currentParent.setRightChild(newNode);
previousParent = currentParent;
currentParent = newNode;
i++;
} // end inner while
if (previousParent.leftChild == null)
{
node newNode = new node(numbers[i]);
previousParent.leftChild = newNode;
currentParent = newNode;
i++;
} // end if branch
else
{
System.out.println("Hmm, something seems to be wrong!");
} // end else
} // end right side binary tree while
} // end integer array constructor
答案 0 :(得分:3)
不,对不起,这是错的。
最后一个提示:该类应命名为Node
,而不是node
。类和所有类型名称应以大写字母开头,变量,字段和方法名称应以小写字母开头,常量应以全部大写字母开头。