dancing links fixed
This commit is contained in:
parent
0672fb0538
commit
78320824fc
2 changed files with 62 additions and 58 deletions
|
@ -12,67 +12,71 @@
|
|||
|
||||
#include "fillit.h"
|
||||
|
||||
// t_col *add_column(t_col *root)
|
||||
// {
|
||||
// t_col *new_col;
|
||||
t_node *add_column(t_node *root)
|
||||
{
|
||||
t_node *new_col;
|
||||
|
||||
// new_col = (t_col*)malloc(sizeof(t_col));
|
||||
// new_col->down = (void*)new_col;
|
||||
// new_col->up = (void*)new_col;
|
||||
// new_col->left = root->left;
|
||||
// new_col->right = root;
|
||||
// return (new_col);
|
||||
// }
|
||||
new_col = (t_node*)malloc(sizeof(t_node));
|
||||
new_col->down = new_col;
|
||||
new_col->up = new_col;
|
||||
new_col->left = root->left;
|
||||
new_col->right = root;
|
||||
new_col->row = -1;
|
||||
new_col->column = NULL;
|
||||
return (new_col);
|
||||
}
|
||||
|
||||
// t_node *add_node(t_col *col, int row)
|
||||
// {
|
||||
// t_node *new_node;
|
||||
t_node *add_node(t_node *col, int row)
|
||||
{
|
||||
t_node *new_node;
|
||||
|
||||
// new_node = (t_node*)malloc(sizeof(t_node));
|
||||
// new_node->row = row;
|
||||
// new_node->up = (t_node*)col->up;
|
||||
// new_node->down = (t_node*)col;
|
||||
// col->up->down = new_node;
|
||||
// col->up = new_node;
|
||||
// return (new_node);
|
||||
// }
|
||||
new_node = (t_node*)malloc(sizeof(t_node));
|
||||
new_node->row = row;
|
||||
new_node->up = col->up;
|
||||
new_node->down = col;
|
||||
col->up->down = new_node;
|
||||
col->up = new_node;
|
||||
return (new_node);
|
||||
}
|
||||
|
||||
// void cover(t_col *to_cover)
|
||||
// {
|
||||
// void *step_vert;
|
||||
// t_node *step_horiz;
|
||||
void cover(t_col *to_cover)
|
||||
{
|
||||
void *step_vert;
|
||||
t_node *step_horiz;
|
||||
|
||||
// to_cover->left->right = to_cover->right;
|
||||
// to_cover->right->left = to_cover->left;
|
||||
// step_vert = to_cover->down;
|
||||
// while (step_vert != (void*)to_cover)
|
||||
// {
|
||||
// step_horiz = (t_node*)step_vert->right;
|
||||
// while (step_horiz != (t_node*)step_vert) {
|
||||
// step_horiz->down->up = step_horiz->up;
|
||||
// step_horiz->up->down = step_horiz->down;
|
||||
// step_horiz = step_horiz->right;
|
||||
// }
|
||||
// step_vert = (t_node*)step_vert->down;
|
||||
// }
|
||||
// }
|
||||
to_cover->left->right = to_cover->right;
|
||||
to_cover->right->left = to_cover->left;
|
||||
step_vert = to_cover->down;
|
||||
while (step_vert != to_cover)
|
||||
{
|
||||
step_horiz = step_vert->right;
|
||||
while (step_horiz != step_vert) {
|
||||
step_horiz->down->up = step_horiz->up;
|
||||
step_horiz->up->down = step_horiz->down;
|
||||
step_horiz = step_horiz->right;
|
||||
}
|
||||
step_vert = step_vert->down;
|
||||
}
|
||||
}
|
||||
|
||||
// void uncover(t_col *to_uncover)
|
||||
// {
|
||||
// void *step_vert;
|
||||
// t_node *step_horiz;
|
||||
void uncover(t_col *to_uncover)
|
||||
{
|
||||
void *step_vert;
|
||||
t_node *step_horiz;
|
||||
|
||||
// step_vert = to_uncover->up;
|
||||
// while (step_vert != (void*)to_uncover)
|
||||
// {
|
||||
// step_horiz = (t_node*)step_vert->left;
|
||||
// while (step_horiz != (t_node*)step_vert)
|
||||
// {
|
||||
// step_horiz->down->up = step_horiz;
|
||||
// step_horiz->up->down = step_horiz;
|
||||
// step_horiz = step_horiz->left;
|
||||
// }
|
||||
// step_vert = (t_node*)step_vert->up;
|
||||
// }
|
||||
// }
|
||||
step_vert = to_uncover->up;
|
||||
while (step_vert != to_uncover)
|
||||
{
|
||||
step_horiz = step_vert->left;
|
||||
while (step_horiz != step_vert)
|
||||
{
|
||||
step_horiz->down->up = step_horiz;
|
||||
step_horiz->up->down = step_horiz;
|
||||
step_horiz = step_horiz->left;
|
||||
}
|
||||
step_vert = step_vert->up;
|
||||
}
|
||||
to_uncover->left->right = to_uncover;
|
||||
to_uncover->right->left = to_uncover;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
/* By: gtertysh <marvin@42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2016/12/14 17:12:30 by gtertysh #+# #+# */
|
||||
/* Updated: 2016/12/14 17:12:32 by gtertysh ### ########.fr */
|
||||
/* Updated: 2016/12/20 20:06:22 by ykolomie ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
|
Loading…
Reference in a new issue