我正在尝试使用一个非常简单的前序遍历算法为霍夫曼树构建一个查找表,但是我正在执行非常基本的位操作.伪代码如下:
void preOrder(huffNode *node, int bit) //not sure how to represent bit
{
if (node == NULL)
return;
(1) bit = bit + 0; //I basically want to add a 0 onto this number (01 would go to 010)
preOrder(node->getLeft(), bit);
(2) bit = bit - 0 + 1; //This should subtract the last 0 and add a 1 (010 would go to 011)
preOrder(node->getRight());
}
Run Code Online (Sandbox Code Playgroud)
我对如何执行第(1)和(2)行定义的操作感到非常困惑
用什么数据类型来表示和打印二进制数?在上面的例子中,我将数字表示为int,但我很确定这是不正确的.另外,如何添加或减去值?我理解&和| 类型逻辑工作,但我对如何在代码中执行这些类型的操作感到困惑.
有人会发一些非常简单的例子吗?
我目前正在尝试对我正在读入的一些数据的一堆变量(基于在不同相空间中的标准化)进行复杂的变量校正。由于每次校正都遵循相同的过程,我想知道是否会有无论如何,要迭代地执行此操作,而不是单独处理每个变量(因为我需要对大约 18-20 个变量执行此操作)。C++ 可以处理这个吗?有人告诉我在 python 中尝试这个,但我觉得它可以在 C++ 中以某种方式完成......我只是碰壁了!
为了给你一个想法,给你一些类似的东西:
class VariableClass{
public :
//each object of this class represents an event for this particlular data set
//containing the following variables
double x;
double y;
double z;
}
Run Code Online (Sandbox Code Playgroud)
我想做一些类似的事情:
for (int i=0; i < num_variables; i++)
{
for (int j=0; j < num_events; j++)
{
//iterate through events
}
//correct variable here, then move on to next one
}
Run Code Online (Sandbox Code Playgroud)
预先感谢您的任何建议!
所以我试图用cin.get()两次读取一串字符.输入被重定向为"program <input".所以使用seekg()是有效的.
正如标题所说,我以为我可以使用seekg()来保存字符串的起始位置,所以我可以再次使用相同字符串的起始位置.
这是我的尝试:
char c;
while (cin.get(c))
{
//do stuff
}
cin.seekg(0, ios::beg);
while (cin.get(c))
{
//do stuff with the string a second time
}
Run Code Online (Sandbox Code Playgroud)
第二个while循环没有做任何事情,所以我显然没有正确使用seekg.有人能告诉我我做错了什么吗?
谢谢你的帮助!
我想知道处理Android应用程序的全局变量的最佳方法是什么.例如,我只是想创建一个基本的登录/注册系统.我已经创建了一个用户类(具有各种属性,如用户名,密码等等),因此当我们转到register活动时,一旦填充了所有字段,就会调用User类构造函数来创建唯一的用户对象出.我当时正在考虑使用一个类型为User的全局arrayList,以便我可以在登录尝试时循环遍历所有用户.
到目前为止(由于缺乏java经验,并且对这个Android东西很新),我还没能成功实现.我有一个我称之为"globalStuff"的类,它有一堆公共静态变量(即用户列表和当前用户),我认为可以从用户导航到的任何活动中访问它.
必须有更好的方法来解决这个问题.我一直在阅读这里的一些教程和一些帖子,但没有一个解决这个非常基本的想法.那么接近这样的事情最好的方法是什么?
谢谢你的帮助!
这似乎应该很容易,但我已经有很长一段时间没遇到这个问题了.正如标题所说,我只是试图找到具有最小值的二叉树(不是BST!)中的节点并返回它.我可以很容易地写一个递归的void函数,至少可以在函数中分配最小的值,但是当我到达NULL指针时,我会陷入如何回溯到先前节点的问题.
我有一个节点类,它有一个指向左右子节点的指针,每个子节点都有自己的值.到目前为止,这是我的(失败)尝试:
int preOrder(Node *node, int value, int count, int sizeOfTree)
{
count++; //keeps track of whether or not we have traversed the whole tree
if(value < node->getValue())
value = node->getValue();
if(count == sizeOfTree);
return value;
if(node == NULL)
//Want to return to the previous function call
//How do I do this for a non void function?
//for a void function, you could jsut type "return;" and the function
//back tracks to your previous place in the tree
//but since …
Run Code Online (Sandbox Code Playgroud)