markdown pour list dans list

This commit is contained in:
hugogogo
2021-06-14 21:53:33 +02:00
parent 1a174e4a5e
commit eb460308b2

View File

@@ -71,34 +71,56 @@ pour utiliser l'algorithme de tris de ce programme dans votre propre programme,
3. mettre le fichiers dans vos srcs dans Makefile
4. et verifier que vos functions d'actions (push, swap, rotate) ont bien les meme prototypes :
- `t_list *sa(t_stack **stack, t_list **lst);`
- `t_list *ss(t_stack **a, t_stack **b, t_list **lst);`
- `t_list *pa(t_stack **dst, t_stack **src, t_list **lst);`
- `t_list *pb(t_stack **dst, t_stack **src, t_list **lst);`
- `t_list *ra(t_stack **stack, t_list **lst);`
- `t_list *rb(t_stack **stack, t_list **lst);`
- `t_list *rr(t_stack **a, t_stack **b, t_list **lst);`
- `t_list *rra(t_stack **stack, t_list **lst);`
- `t_list *rrb(t_stack **stack, t_list **lst);`
- `t_list *rrr(t_stack **a, t_stack **b, t_list **lst);`
ce programme push_swap.c s'organise de la facon suivante :
1. des fonctions pour faire fonctionner l'algorithme de tris (principalement parsing des donnees, et les actions utilisees par l'algorithme de tris : push, swap, rotate et reverse rotate) :
- **push_swap.c** : contient la fonction main et 4 autres fonctions :
- **is_valid** : verification d'erreur de parsing des listes données
- **check_flag** : regarde la presence des flags, pour l'instant uniquement -p pour print les etapes du tri
- **init_stack** : qui parse la pile a trier dans une liste chainee
- **launch_algo** : la fonction qui lance l'algorithme de tri, en lui envoyant ce qui est necessaire (les deux piles a et b et la liste de solutions)
- **stop.c** : qui gere les erreurs, l'usage, mais aussi qui free avant de fermer le programme
- **ps_stop** : recoit toutes les listes chainees du programme, envoyer NULL si on ne veut pas free la liste, et le dernier int permet de savoir si on veut arreter le programme (>= 0) et si on veut signaler une erreur (> 1)
- **ps_error** : la gestion des erreurs
- **ps_usage** : en cas d'erreur = 1, affiche l'usage du programme
- **print.c** : contient les fonctions necessaires pour afficher le resultat
- **print_result** : affiche le resultat, et si presence du flag -p affiche aussi les etapes de tris
- **fill_solution** : remplit la liste chainee solution au fur et a mesure de l'appel des fonctions push swap et rotate (pas optimisé pour raison de compatibilité avec l'appel des fonctions du programme de luke : les actions (push, swap, etc) ne recoivent pas de flag en argument, donc fill_solution remplis toutes les infos necessaires pour le flag, meme s'il n'y a pas de flag)
- toutes les fonctions d'action (push, swap, rotate, et reverse rotate)