我想从底部到顶部遍历二叉树。
然后我想将这个遍历(=方式)的位序列保存在一个字符中。
这种行为应该是动态的,所以如果我有一个超过 8 位的位序列,则应该动态扩展 char,例如 2 个字节等等....
例如,如果位序列是 1001010,我希望将完全相同的位序列存储在 char 中。
我知道我应该使用位移运算符 << >> 但我无法弄清楚正确的方法。
在我在 char 中写了 8 位之后,我遇到了一个问题。
我附上了一些示例代码,希望有人可以阐明。
谢谢
char* bits = malloc(sizeof(char));
char* temp_bits = NULL;
some loop
{
if (cnt_bit > 7)
{
temp_bits = realloc(bits, sizeof(char)*2);
free(bits);
bits = temp_bits;
}
*bits = *bits << 1;
*bits = *bits | 0;
cnt_bit++;
}