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




Деревья - часть 3



//------------------------------------------------------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;
}

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




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