Esempio n. 1
0
static t_lst		*pos_pres_s(t_lst *lst, t_data *data)
{
	int		count;
	t_lst	*start;
	t_lst	*tmp;

	if (!data->precision)
	{
		free_lst(lst);
		return (0);
	}
	if (lst_len(lst) > data->precision)
	{
		start = lst;
		count = data->precision;
		while (count > 1)
		{
			lst = lst->next;
			count--;
		}
		tmp = lst->next;
		lst->next = 0;
		free_lst(tmp);
		return (start);
	}
	return (lst);
}
Esempio n. 2
0
int		main(int argc, char **argv)
{
	t_shell		*head;
	int			i;

	i = argc == 2 ? 0 : 1;
	if (argc == 2 && string_is_valid(argv[1]))
		argv = ft_strsplit(argv[1], ' ');
	if (argc == 1 || !(head = (t_shell*)malloc(sizeof(t_shell))))
		return (0);
	init_head(head);
	while (argv[i])
	{
		if (check_digit(argv[i]) == -1)
			return (flush(head->sa, 0));
		head->sa = push_back_stack2(head->sa, ft_atoi(argv[i]));
		head->max = ft_atoi(argv[i]) > head->max ? ft_atoi(argv[i]) : head->max;
		i++;
	}
	head->len = l_len(head->sa);
	which_swap(head);
	free_lst(head);
	if (argc == 2)
		free_array(argv);
	if (head)
		free(head);
	return (0);
}
Esempio n. 3
0
static void free_lst(NODE *l, int free_vals) {
  if(l == NULL) return;
  free_lst(l->next, free_vals );
  free(l->key);  // made our own copy
  if(free_vals &&  l->val != NULL)
	free(l->val);
  free(l);
}
Esempio n. 4
0
void hmap_free(HMAP_PTR map, int free_vals) {
int i;

  for(i=0; i<map->tsize; i++) 
	free_lst(map->tbl[i].members, free_vals);
  free(map->tbl);
  map->tbl = NULL;  // not needed
  free(map);
}
Esempio n. 5
0
int			lst_finish(t_lst *lst, t_data *data)
{
	int	count;

	lst = format_lst(lst, data);
	print_lst(lst);
	count = lst_len(lst);
	free_lst(lst);
	return (count);
}
Esempio n. 6
0
t_list			*ft_lstfrom_void_tab(const void *tab, size_t tab_size,
		size_t content_size)
{
	int		i;
	t_list	*lst;
	t_list	*add;
	char	*tmp;
	int		size;

	if (!tab || !content_size)
		return (NULL);
	i = -1;
	lst = NULL;
	size = tab_size / content_size;
	while (++i < size)
	{
		if (!(tmp = ft_strdup(tab + i * content_size)))
			return (free_lst(lst));
		if (!(add = ft_lstnew(tmp, ft_strlen(tmp))))
			return (free_lst(lst));
		ft_lstpush(&lst, add);
	}
	return (lst);
}
Esempio n. 7
0
void			solve(t_tet *lst)
{
	t_matrix	matrix;
	int			len;

	len = nk_sqrt(list_count(lst));
	matrix = create_matrix(len, len);
	while ((matrix.map = recurse(matrix, lst, return_pos(0, 0))) == NULL)
	{
		matrix = create_matrix(len, len);
		len++;
	}
	display_matrix(matrix);
	free_lst(lst);
	free_matrix(matrix.map, matrix.size_y);
}