Как связать два элемента в связном списке?
Как связать нижние элементы в списке? Что я пытался делать не помогло и выдавало ошибку сегментации? Вот код от которого я отталкиваюсь:
#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
typedef struct s_list
{
int id;
int information;
struct s_list *right;
struct s_list *down;
} t_list;
t_list *create_node(int set_id, int set_information)
{
t_list *node = (t_list *)malloc(sizeof(t_list));
node -> id = set_id;
node -> information = set_information;
node ->right = NULL;
node ->down = NULL;
}
void append_right(t_list **list, int set_id, int set_information)
{
t_list *new_element = create_node (set_id, set_information);
t_list *tmp = * list;
while (tmp -> right != NULL)
{
tmp = tmp -> right;
}
tmp -> right = new_element;
}
void append_down(t_list **list, int set_id, int set_information)
{
t_list *new_element = create_node (set_id, set_information);
t_list *temp = *list;
while (temp -> down != NULL)
{
temp = temp -> down;
}
temp -> down = new_element;
new_element -> down = NULL;
}
int main()
{
t_list *list = create_node(0, 123);
append_right(&list, 1, 234);
append_down(&list, 2, 345);
append_right(&list, 1, 234);
append_down(&list, 2, 345);
while(list != NULL)
{
printf("id = %d, info = %d\n", list -> id , list -> information);
list = list -> right;
}
return 0;
}