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


Поэлементная загрузка динамических структур данных - часть 2



ftree Elem; // В памяти - автоматическая переменная


Elem.fright = Elem.fleft = FNULL;
Elem.val = vv;
fseek(fd, 0L, SEEK_END);
pos = ftell(fd);
fwrite((void*)&#38Elem, TSZ, 1, fd);
return pos;
}
// Замечание: функция добавления вершины в дерево не работает


// пустым деревом, поэтому этот случай необходимо


// рассматривать отдельно, перед ее вызовом.


void AppendTree(long pos, int vv, FILE *fd)
{
ftree Elem; // Автоматическая переменная


fseek(fd, pos, SEEK_SET); // для хранения текущей


fread((void*)&#38Elem, TSZ, 1, fd); // вершины дерева


if (Elem.val==vv) return;
if (Elem.val &#62 vv)
{
if (Elem.fleft !=NULL)
{
AppendTree(Elem.fleft,vv,fd);
return;
}
else
Elem.fleft = AppendOne(vv,fd);
}
else
{
if (Elem.right !=NULL)
{
AppendTree(Elem.fright,vv,fd);
return;
}
else
Elem.fright = AppendOne(vv,fd);
}
fseek(fd, pos, SEEK_SET); // Обновить текущую


fwrite((void*)&#38Elem, TSZ, 1, fd); // вершину дерева


}




Начало  Назад  Вперед



Книжный магазин