В настоящее время я работаю над проектом на C++, который требует от меня хранить буквы из текстового файла в двоичном дереве. Я должен пройти через строку и сохранить буквы в дереве, а также количество раз, сколько букв происходит. Я не уверен, как писать функции вставки, чтобы сохранить как букву, так и целое число. Это то, что я до сих пор сохранял в дереве единственное значение.C++ Binary Tree
void BinaryTree::insert(TreeNode *&nodePtr, TreeNode *&newNode)
{
if (nodePtr == NULL)
nodePtr = newNode;
else if (newNode->value < nodePtr->value)
insert(nodePtr->left, newNode);
else
insert(nodePtr->right, newNode);
}
void BinaryTree::insertNode(int num)
{
TreeNode *newNode = NULL;
newNode = new TreeNode;
newNode->value = num;
newNode->left = newNode->right = NULL;
insert(root, newNode);
}
Это класс для программы:
class BinaryTree
{
private:
struct TreeNode
{
int value;
TreeNode *left;
TreeNode *right;
};
TreeNode *root;
void insert(TreeNode *&, TreeNode *&);
public:
BinaryTree()
{
root = NULL;
}
void insertNode(int);
};
И ИНТ главная:
int main()
{
string filename;
string filedata;
BinaryTree tree;
fstream file;
cout << "Please enter a filename: ";
cin >> filename;
file.open(filename.c_str(), ios::in);
if (file)
{
while (file)
{
file >> filedata;
//tree.insertNode(filedata,);
}
file.close();
}
else
{
cout << "ERROR: Cannot open file.";
}
return 0;
}
Я полагаю, мне нужно добавить строку элемент функции insertNode, но я не знаете, как сохранить оба значения вместе в дереве.
Благодарим за помощь.
У вашего 'TreeNode' есть переменная' char' в дополнение к переменной 'int'. Но вам нужно закодировать «BinaryTree» или просто использовать его? –
Мне нужно его закодировать. Моя проблема заключается в изменении функции insertNode для вставки строки, а также целого числа. Должен ли я добавить номер в конец письма и хранить его вместе? – tfreiner
Почему вы хотите добавить их? Просто передайте 2 переменные в 'insertNode' и добавьте еще один член данных в класс' TreeNode' – user007