1.标题:满二叉树
一般情况下,二叉树通过含有指针的数据结构来存储。但对特殊情形,也可以简化存储。
比如满二叉树的情形:除了最后一层的叶子节点外,所有的节点都有完整的左右子节点。我们可以按照树的逐层遍历顺序把节点存在数组中。当然,需要从某个节点的序号计算出它的父亲节点或者两个孩子节点。
下面代码的目标是求某节点的父节点的。请填写划线部分缺少的代码。
// 返回k号节点的父节点数据 // data: 存储满二叉树的数组
// k: 当前节点的索引号(即数组下标,从0开始)
intget_parent(int* data, int k)
{
return data[ _______________ ]; //填空位置
}
请严格按照格式,通过浏览器提交答案。
注意:只提交划线部分缺少的内容,不要写其它附加内容,比如:说明性的文字。 注意选择自己使用的编译器类型
答案: (k-1)/2
题目标题: 堆煤球
小明的爷爷很怀旧,冬天来了他还是要自己做煤球。
并且,爷爷把煤球堆放得十分整齐有规律:最上边一层只有1个煤球。第二层4个煤球摆成正方形,再下面9个煤球也是摆成正方形。总之,第 n 层就是边长为 n 的正方形。这样的结构既通风又稳固。
小明数了数,一共有30层,请你帮助计算一下,一共有多少个煤球? ___________ 请通过浏览器提交答案。
注意:只提交数字,不要求解过程或公式。
注意:不要书写其它的内容(比如:说明性的文字)。
答案: 9455
3.
题目标题: 大小之差
某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。
该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。
比如:766431- 134667 = 631764 就是具有这样特征的数字。