예제 #1
0
static void savenode (vpnode *node, int bsize, FILE *f)

{   char hoja = node->hoja ? '1' : '0';
    putc (hoja,f);
    if (node->hoja)
    {   fwrite (&node->u.hoja.size,sizeof(int),1,f);
        savebucket (node->u.hoja.bucket,node->u.hoja.size,f);
    }
    else
    {   fwrite(&node->u.interno.query,sizeof(int), 1, f);
        fwrite (&node->u.interno.dist, sizeof(Tdist),1,f);
        savenode(node->u.interno.child1,bsize,f);
        savenode(node->u.interno.child2,bsize,f);
    }
}
예제 #2
0
void savevarnode(varnode *head, FILE *fp)
{
   while (head)
   {
      fwrite(head, sizeof(varnode), 1, fp);
      savenode(head->head, fp);
      head = head->next;
   }
}
예제 #3
0
void saveIndex (Index S, char *fname)

{   FILE *f = fopen(fname,"w");
    vpt *tree = (vpt*)S;
    fwrite (tree->descr,strlen(tree->descr)+1,1,f);
    fwrite (&tree->bsize,sizeof(int),1,f);
    savenode (&tree->node,tree->bsize,f);
    fclose (f);
}