/*- * Copyright (C) 2025 Alessandro Iezzi * * This file is part of Tris Game. * * Tris Game is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Tris Game is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Tris Game. If not, see . */ #include "list.h" #include static list_node_t * list_create_node(void *data) { list_node_t *node = malloc(sizeof(list_node_t)); node->data = data; node->next = NULL; return node; } list_t * list_create() { list_t *list = malloc(sizeof(list_t)); list->head = NULL; list->tail = NULL; list->size = 0; return list; } void list_add(list_t *l, void *data) { if (l == NULL) return; list_node_t *node = list_create_node(data); if (node == NULL) return; l->size++; /* It's the first element of the list */ if (l->head == NULL) { l->head = node; l->tail = node; } else { l->tail->next = node; l->tail = node; } }