Пример #1
0
Ensure(ll_traverse, adds_new_nodes_in_front_of_the_ll_properly)
{
  ll *linkedlist = new_ll(LL_INT);

  int i;
  for(i = 0; i < NUM_OF_NODES; i++)
    ll_addfront(linkedlist, &i, NULL);

  int counter = 0;
  ll_traverse(linkedlist, increment, &counter);

  assert_that(counter, is_equal_to(linkedlist->len));
  dispose_ll(&linkedlist);
}
Пример #2
0
int			builtins_env(int argc, char **argv,
				     t_config *conf, int *ret)
{
  char			*cmdline;
  t_config		c;

  if (argc == 1)
    {
      ll_traverse(&(conf->env), (void (*)(void *))print_env_entry);
      *ret = 0;
      return (MYSH_SIGNAL_NOPE);
    }
  else if (!my_strcmp(argv[1], "-i"))
    {
      cmdline = build_str_from_wt(argv, 2, argc - 1);
      my_memcpy(&c, conf, sizeof(t_config));
      my_exec(&c, cmdline, ret);
      x_free(cmdline);
      return (MYSH_SIGNAL_NOPE);
    }
  my_printf_err("'%s': unknown option\n", argv[1]);
  *ret = -1;
  return (MYSH_SIGNAL_NOPE);
}
Пример #3
0
int
main(int argc, char **argv)
{
    int c = 0;
    llist_t* list = 0;
    node_t* aux = 0;


    list = ll_create();
    ll_initialize(list, free, compare_int_data);

    /* 0...9 */
    for(; c < 10; c++)
        ll_add_last(list, create_node( create_int_data(c) ) );

    /* 10 0...9 */
    ll_add_first(list, create_node( create_int_data(c) ) );

    /* 11 10 0...9 */
    ll_add_first(list, create_node( create_int_data(++c) ) );

    /* 11 10 12 0...9 */
    ll_add_before(list, list->first->next->next, create_node( create_int_data(++c) ) );

    /* 11 10 12 0...8 13 9 */
    ll_add_after(list, list->last->prev, create_node( create_int_data(++c) ));

    /* 11 10 12 0...8 13 14 9 */
    ll_add_after(list, list->last->prev, create_node( create_int_data(++c) ));

    /* 11 12 0...8 13 14 9	*/
    ll_remove(list, list->first->next, DESTROYNODE );

    /* 11 12 0...8 13 14 */
    ll_remove(list, list->last, DESTROYNODE);

    /* 12 0...8 13 14 */
    ll_remove(list, list->first, DESTROYNODE);

    /* to test "NOTDESTROY" option*/
    aux = list->last->prev;

    /* 12 0...8 14 */
    ll_remove(list, list->last->prev, NOTDESTROY);

    printf("\n");

    /* Forward: 12 0...8 14	*/
    ll_traverse(list, print_int_data, FORWARDTRAVERSE);
    printf("\n");

    /* Backward: 14 8...0 12 */
    ll_traverse(list, print_int_data, BACKWARDTRAVERSE);
    printf("\n\n");

    /* Destroy node	"13"*/
    free_node(aux, list->free_data);
    printf("\n");

    /* Deleted node, is not found*/
    int a = 10;
    aux = ll_search_node(list, &a);

    if(aux != NULL)
        printf("NODE: %p DATA: %d\n", aux ,*(int*)DATA(aux));

    a = 4;
    aux = ll_search_node(list, &a);

    if(aux != NULL)
        printf("NODE: %p DATA: %d\n", aux ,*(int*)DATA(aux));


    ll_free(list);
    list = 0;
    return EXIT_SUCCESS;
}