Не получается удалить слово из нагруженного дерева. Смотрю в дебаге, на последнем узле слова адреса в каждой ячейке массива не NULL и bool не равен false. Из за этого не хочет работать, а как по другому удалить пока не придумал.
class TrieTree {
static const int ALP = 26;
struct Node{
Node *floor[ALP];
bool end_Word;
};
struct Node *getNode(){
Node *node = new Node;
node->end_Word = false;
for (int i = 0; i < ALP; i++)
{
node->floor[i] = NULL;
}
return node;
}
struct Node *root;
public:
TrieTree(){
root = getNode();
}
void add(std::string str){
add(root,str);
}
void del(std::string str){
del(root,str);
}
bool search(std::string str){
return search(root,str);
}
private:
void add(Node *node, std::string str){
for (int i = 0; i < str.size(); i++)
{
if(!node->floor[str[i] -'a']){
node->floor[str[i] -'a'] = getNode();
}
node = node->floor[str[i] -'a'];
}
node->end_Word = true;
}
bool search(Node *node, std::string str){
for (int i = 0; i < str.size(); i++)
{
if(!node->floor[str[i] -'a']) return false;
node = node->floor[str[i] -'a'];
}
return (node != NULL && node->end_Word);
}
bool onWords(Node *node){
for(int i = 0; i < ALP; i++)
{
if(node->floor[i]) return false;
}
return true;
}
bool leafNode(Node *node){
return (node->end_Word != false);
}
bool delHelp(Node *node, std::string str,int level, int len){
if(node)
{
if (level == len)
{
if (node->end_Word)
{
node->end_Word = false;
if(onWords(node))
{
return true;
}
return false;
}
}
else
{
int index = str[level]-'a';
if (delHelp(node->floor[index],str,level+1,len) )
{
delete node->floor[index];
return (!leafNode(node) && onWords(node));
}
}
}
return false;
}
void del(Node *node, std::string str){
int len = str.size();
if( len > 0) {
delHelp(node,str,0,len);
}
}
};
Суть проблемы такова, требуется нарисовать правила игры (в консоле) в левой стороне, а справа нарисовать поле игры
Добрый деньТолько начинаю работать с библиотекой opencv, в связи с чем возник вопрос: Лучше объявлять указатели Mat или же сами объекты?т
Я собирался отправить структуру с клиента на сервер, используя boost :: asio :: async_write_some, в этом случае boost :: serialization приходит на помощь:
Не могу никак дойти до разумного решения данной проблемы, пытался использовать ifstream, fopen