我已实现以下代码以按级别顺序打印二叉搜索树.
public void printLevelOrder(int depth) {
for (int i = 1; i <= depth; i++) {
printLevel(root, i);
}
}
public void printLevel(BinaryNode<AnyType> t, int level) {
if (t == null) {
return;
}
if (level == 1) {
System.out.print(t.element);
} else if (level > 1) {
printLevel(t.left, level - 1);
printLevel(t.right, level - 1);
}
}
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何改进我的代码,让它以某种格式打印出来.
举个例子,给一棵树
1
/ \
2 3
/ / \
4 5 6
Run Code Online (Sandbox Code Playgroud)
目前它打印如下:
123456
Run Code Online (Sandbox Code Playgroud)
我正在寻找它打印如下:
Level 0: 1
Level 1: 2 3 …Run Code Online (Sandbox Code Playgroud) 我有以下函数生成-10到2之间的随机数:
#include <stdlib.h>
#include <time.h>
static int
getRandomReturnCode(void)
{
int N = 2,
M = -10;
srand(time(NULL));
r = M + rand() / (RAND_MAX / (N - M + 1) + 1);
if (r == 0){
getRandomReturnCode();
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
目前,如果返回0(成功)的返回代码,它将递归调用该函数,直到满足并返回非零返回代码.我可以做些什么来改进我的代码,使得0被排除在随机选择的数字范围之外?
我有一个解析日志中的行列表,如下所示:
parsedLog = ['20151005 09:11:14 LOG_ID 00000000', '20151005 09:11:14 LOG_ADDR 0173acc4\n Address of log', '20151005 09:11:14 READ_CONFIG 00000105',
Run Code Online (Sandbox Code Playgroud)
我正在寻找最简洁的方法0173acc4从字符串中的第二个元素中提取值LOG_ADDR(即键)(原因是日志不会始终保持一致).
我目前正在使用以下一个班轮:
filter(lambda line: 'LOG_ADDR' in line, parsedLog)[0].split('\n')[-8:]
Run Code Online (Sandbox Code Playgroud) 我有以下脚本设置干净PYTHONPATH:
#!/bin/bash
# Get the directory the script is in
DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
$ Walk up to root of branch dir
DIR=$DIR/../../..
PYTHONPATH=$DIR/module1
PYTHONPATH=$PYTHONPATH:$DIR/module2
PYTHONPATH=$PYTHONPATH:$DIR/module3
PYTHONPATH=$PYTHONPATH:$DIR/module4
export PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
该脚本应该与nosetest命令一起运行,以允许测试在需要时导入所有必需的模块而不会出现任何问题:
./path/to/script/PythonPath.sh && nosetests <tons of other arguments>
但是,当我运行上面的命令时,我得到一个ImportError模块,声明它不存在.我echo在脚本的末尾添加了一个语句来帮助调试,PYTHONPATH它完全是应该的.我也试过PYTHONPATH手动设置,似乎无法重现同样的问题.
我有一个char数组,其中来自命令行的用户输入被放入.我想将该数组传递给函数foo并将其内容复制到原始数组中包含的内容大小的类似char数组.但是我收到了这个警告.我哪里错了?
char inputBuffer[500];
void foo(char *inputBuffer)
{
char readBuffer[sizeof(inputBuffer)];
strncpy(readBuffer, inputBuffer, sizeof(inputBuffer));
}
Run Code Online (Sandbox Code Playgroud)
警告:"__builtin_strncpy"调用中'sizeof'的参数与源表达式相同,是否意味着提供显式长度
我试图执行以下操作但收到以下错误:
"错误:
{令牌之前的预期表达
Test_Stubs.h
#define SIGNATURE 0x78,0x9c
Run Code Online (Sandbox Code Playgroud)
TEST.C
#include "Test_Stubs.h"
static unsigned myArray[100];
static void
setup(void)
{
myArray = {SIGNATURE};
}
Run Code Online (Sandbox Code Playgroud)
编辑
关注问题:
有没有办法在#definemyArray的特定索引中分配单个值?例如...
#include "Test_Stubs.h"
static unsigned myArray[100];
static void
setup(void)
{
myArray[0] = SIGNATURE[0]; //0x78
myArray[1] = SIGNATURE[1]; //0x9c
}
Run Code Online (Sandbox Code Playgroud)
显然,上面的代码不会编码,因为SIGNATURE既不是数组也不是指针.