/* * SPDX-FileCopyrightText: 2019-2023 Bruce Cowan <bruce@bcowan.me.uk> * * SPDX-License-Identifier: GPL-3.0-or-later */ #include <slist.h> #include <stdio.h> #include <stdlib.h> #include <string.h> static SList * add_data (SList *list) { char buffer[128]; printf ("Input the data "); scanf ("%s", buffer); char *str = strdup (buffer); return slist_prepend (list, str); } static void print_data (SList *list) { SList *l; for (l = list; l; l = l->next) printf ("%s\n", (char*) l->data); } int main(void) { SList *list = nullptr; for (int i = 0; i < 3; i++) { list = add_data (list); print_data (list); } for (int i = 2; i >= 1; i--) { void *el = slist_nth (list, i)->data; list = slist_remove (list, el, nullptr); } puts ("After deletion: "); print_data (list); slist_free_all(list, nullptr); return 0; }