Опитвам се да взема низ и след това да го манипулирам в двоично дърво. Единственият проблем е, че ми е трудно да чета в низовете. Знам, че в c++ всеки отделен знак е char, а не низ, но не мога да разбера как да рекурсирам през низа, за да получа всеки char (надявам се, че има смисъл). Опитвам се да вмъкна първия символ в моя конструктор като корен и след това да отида в моята функция за изграждане на дърво, която след това ще продължи надолу по реда, като го попълва. Някой има ли идеи?
class PrefixTree
{
private:
struct TreeNode
{
char character;
TreeNode * left;
TreeNode * right;
};
TreeNode* root = new TreeNode;
public:
PrefixTree(string value)
{
if (value == '*')
{
root->character = value;
}
buildTree(root, value);
}
TreeNode* buildTree(TreeNode* node, string value)
{
TreeNode* currentNode = new TreeNode;
currentNode = node;
if (currentNode->character == '*' && currentNode->left == NULL)
{
currentNode->left = buildTree(currentNode->right,value);
return currentNode;
}
else if (currentNode->character == '*' && currentNode->right == NULL)
{
currentNode->right = buildTree(currentNode->right,value);
return currentNode;
}
else
{
return currentNode;
}
}
и как извиквам конструктора основно:
PrefixTree n("*ab");