lt; lt; «System A n»; (! Strncmp (find_value, tn1- gt; val, strlen (tn1- gt; val)))//якщо якась частина слова збігається зі значенням у вузлі
{// cout lt; lt; «System B n»;
//cout lt; lt; find_value lt; lt; endl;
//cout lt; lt; «tn1- gt; val« lt; lt; tn1- gt; val lt; lt; endl;
return find_node (find_value + strlen (tn1- gt; val), tn1);// Якщо так, то викликаємо рекусівно функцію, для середовища рівня вузлів
}
}//якщо довжина шуканого значення менше або совпадаетif (strlen (find_value) == strlen (tn1- gt; val))//якщо довжина шуканого значення збігається з довжиною вузла
{// cout lt; lt; «System C n»; (! Strncmp (find_value, tn1- gt; val, strlen (tn1- gt; val)))//якщо значення у вузлі збігається,
{
//cout lt; lt; «System D n»; tn1;// То повертаємо покажчик
}
}
} zero_node;// Якщо збігів немає, то повертаємо порожнє значення
}
:
//Конструктор без параметра ();
//Конструктор з параметром (char root_val);
//деструктор
~ tree () {}
//функції відкритої області
//Додавання вузла
bool add (char * insert_value);
//пошук в дереві по значеніюfd_nd (char * find_value);
//друк дереваprint ();
};
/**
file MyClass.h (MyClass.cpp)
brief опис модулів
Брігаденко
date 13,02,2014
*/
# include «stdafx.h»
# include lt; iostream gt;
# include «class.h»
namespace std;
//конструктор для кореня: node ()
{= NULL;// Покажчик на батька нульовий (val, «ROOT»);// Прісвайіваем символьне значення, що вказуватимуть, що це корінь
}
//констуктор для вузла
node: node (char * node_val)
{(val, node_val);// Записуємо значення у вузол
}
//деструктор: ~ node () {}
//обхід дерева в глибину
void node: print (int level)
{node * tn=this;// Створюємо покажчик на даний вузол (tn)//якщо вузол не кінцевий
{each (node ??* tn1 in tn- gt; lstNode)//цикл по елементах списку в узле- gt; print (level + 1);// Рекурсивний виклик функції самої себе
} (int spaces=0; spaces lt; level; spaces ++)//виводимо потрібну кількість прогалин lt; lt; »»;
if (tn)//виводимо саме значення вузла
{ lt; lt; tn- gt; val lt; lt; endl;
}
}
//конструктор дерева
tree: tree ()
{= NULL; _node=NULL;
}
//додавання суфікса в деревоtree: add (char * insert_value)
{* ret=insert_node (insert_value);// Викликаємо конструктор (ret) return true;// Якщо все добре, то вовращаем true
else return false;// Інакше false
}
//шукаємо суфікс із заданим значеніемtree: fd_nd (char * find_value)
{(! root) false; * find_nd=find_node (find_value, root); (find_nd!=zero_node) true;
}
tree: print ()//друкуємо дерево
{(! root)//захист від помилок - якщо взагалі немає дерева, то просто виходимо
return false; lt; lt; «================================ N n»;
root- gt; print ();// Викликаємо функцію друку lt; lt; «================================ N n»;
}
//tree.cpp: визначає точку входу для консольного застосування.
//
/**
brief робота з випадковим деревом пошуку
author Брігаденко
date 28/03/2011
*/
# include «stdafx.h»
# include lt; iostream gt;