Exemplo n.º 1
0
static void map_erase_item (tiz_map_t *ap_map, tiz_map_item_t *ap_item)
{
  assert (NULL != ap_map);
  assert (NULL != ap_map->p_tree);
  assert (NULL != ap_item);

  if (0 == avl_remove_by_key (ap_map->p_tree, (void *)ap_item, map_free_key))
    {
      map_free (ap_map->p_soa, ap_item);
      ap_map->size--;
    }
}
Exemplo n.º 2
0
void
tiz_map_erase (tiz_map_t * ap_map, OMX_PTR ap_key)
{
  tiz_map_item_t item = { ap_key, NULL, ap_map };

  assert (NULL != ap_map);
  assert (NULL != ap_map->pf_free);
  assert (NULL != ap_key);

  if (0 != avl_remove_by_key (ap_map->p_tree, (void *) &item, map_free_key))
    {
      return;
    }

  ap_map->size--;
}
Exemplo n.º 3
0
int
main (int argc, char ** argv)
{
  avl_tree * tree;
  unsigned int index;

  tree = avl_new_avl_tree (compare_ints, NULL);

  avl_insert_by_key (tree, (void *) 50, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 45, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 15, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 10, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 75, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 55, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 70, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 80, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 60, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 32, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 20, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 40, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 25, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 22, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 31, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  avl_insert_by_key (tree, (void *) 30, &index); avl_print_tree (tree, int_printer); avl_verify (tree);
  while (tree->length) {
    int num = 0;
    int any = 0;
    any = fscanf (stdin, "%d", &num);
    if (any < 1) {
      return 0;
    } else {
      fprintf (stdout, "deleting %d\n", num);
      avl_remove_by_key (tree, (void *) num, null_key_free);
      avl_print_tree (tree, int_printer);
      avl_verify (tree);
    }
  }
  return 0;
}