diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-02-10 02:16:49 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-10 02:16:49 +0100 |
| commit | 0acdc4fec5cae4e619d0f4f8bd67e171bffa110e (patch) | |
| tree | 3c77b003ae67d130272b61cc910bf10a3a3b5f9c /src/lst/ft_lstsorted_merge.c | |
| parent | 329e7a3bde7f206414fe89c9b3ca12d1fc1e1b29 (diff) | |
| download | libft-0acdc4fec5cae4e619d0f4f8bd67e171bffa110e.tar.gz libft-0acdc4fec5cae4e619d0f4f8bd67e171bffa110e.tar.bz2 libft-0acdc4fec5cae4e619d0f4f8bd67e171bffa110e.zip | |
Added ft_lstsort, ft_lstsorted_merge
Diffstat (limited to 'src/lst/ft_lstsorted_merge.c')
| -rw-r--r-- | src/lst/ft_lstsorted_merge.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lst/ft_lstsorted_merge.c b/src/lst/ft_lstsorted_merge.c new file mode 100644 index 0000000..c3d0391 --- /dev/null +++ b/src/lst/ft_lstsorted_merge.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lstsorted_merge.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/10 01:58:52 by cacharle #+# #+# */ +/* Updated: 2020/02/10 02:13:37 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft_lst.h" + +t_ftlst *ft_lstsorted_merge(t_ftlst *l1, t_ftlst *l2, + int (*cmp)(void *, void *)) +{ + t_ftlst *merged; + + merged = NULL; + if (l1 == NULL) + return (l2); + if (l2 == NULL) + return (l1); + if (cmp(l1->content, l2->content) < 0) + { + merged = l1; + merged->next = ft_lstsorted_merge(l1->next, l2, cmp); + } + else + { + merged = l2; + merged->next = ft_lstsorted_merge(l1, l2->next, cmp); + } + return (merged); +} |
