Информатика и технология программирования


         

в такое дерево ради сохранения




//------------------------------------------------------bk55-05.cpp

struct tree1
{
char *key; // Ключевое слово

char *data; // Искомая информация

tree1 *child[4]; // Потомки

};
char *find(tree1 *ph, char *keystr)
{ char *s;
if (ph==NULL) return NULL;
if (strcmp(ph-&#62key,keystr)==0) return ph-&#62data;
// Вершина найдена

if (strlen(keystr)&#60strlen(ph-&#62key)) return NULL;
// Короткие строки - ближе к корню

for (int i=0; i&#60 4; i++)
if ((s=find(ph-&#62child[i],keystr))!=NULL) return s;
return NULL;
}

Функция включения в такое дерево ради сохранения свойств дерева при включении новой строки должна " вытеснять" более длинные строки из текущих вершин в поддеревья и заменять их на новые, более короткие.


Содержание  Назад  Вперед