Exemplo n.º 1
0
int main(void)
{
  List *list;

  list = NULL;
  if (add_end_dl_list(&list, "Holberton") == 1 ||
      add_end_dl_list(&list, "School") == 1 ||
      add_end_dl_list(&list, "Full") == 1 ||
      add_end_dl_list(&list, "Stack") == 1 ||
      add_end_dl_list(&list, "Engineer") == 1)
    return (1);
  printf("FIRST EXAMPLE:\n");
  print_dl_list(list);
  free_dl_list(list);
  list = NULL;
  if (add_begin_dl_list(&list, "Holberton") == 1 ||
      add_begin_dl_list(&list, "School") == 1 ||
      add_begin_dl_list(&list, "Full") == 1 ||
      add_begin_dl_list(&list, "Stack") == 1 ||
      add_begin_dl_list(&list, "Engineer") == 1)
    return (1);
  printf("SECOND EXAMPLE:\n");
  print_dl_list(list);
  free_dl_list(list);
  return (0);
}
int main(void)
{
  List *list;

  list = NULL;

  printf("The address stored in list is %p.\n", (void *)list);
  if (add_end_dl_list(&list, "Holberton") == 1 ||
      add_end_dl_list(&list, "School") == 1 ||
      add_end_dl_list(&list, "Full") == 1 ||
      add_end_dl_list(&list, "Stack") == 1 ||
      add_end_dl_list(&list, "Engineer") == 1)
    return (1);

  printf("The address stored in list is now %p.\n", (void *)list);

  printf("The nodes in the list contain the strings:\n");
  printf("%s\n", list->next->next->next->next->prev->prev->prev->prev->str);
  printf("%s\n", list->next->next->next->next->prev->prev->prev->str);
  printf("%s\n", list->next->next->next->next->prev->prev->str);
  printf("%s\n", list->next->next->next->next->prev->str);
  printf("%s\n", list->next->next->next->next->str);

  return (0);
}
/*converts an array to double linked list*/
List *array_to_dl_list(char **array) {
  List *list;
  int i;
  list = NULL;
  for (i=0 ; array[i] ; i++) {
    if ( (add_end_dl_list(&list, array[i] )) == 1 ) {
      return NULL;
    }
  }
  return list;
}
List *array_to_dl_list(char **array) {
  int i;
  List *head_ptr;
  int node;

  head_ptr = NULL;

  for (i = 0; array[i] != NULL; i++) {
    node = add_end_dl_list(&head_ptr, array[i]);
    if (node == 1)
      return NULL;
  }
  return head_ptr;
}
List *array_to_dl_list(char **array) {
    int i;
    List *head_ptr;
    int node;

    /* start with an empty list */
    head_ptr = NULL;

    for (i = 0; array[i] != NULL; i++) {
        node = add_end_dl_list(&head_ptr, array[i]);
        /* return NULL if add failed */
        if (node == 1)
            return NULL;
    }
    return head_ptr;
}
/* iterate through array, calling add_end_dl_list to add a node for each
 * struct
 */
List *array_to_dl_list(char **array)
{
	List *list;
	int i;

	i = 0;

	list = NULL;
	while (array[i] != '\0')
	{
		if(add_end_dl_list(&list, array[i]) == 1) {
			return NULL;
		}
		i++;
	}
	return (list);
}