/* * SPDX-FileCopyrightText: 2019 Bruce Cowan <bruce@bcowan.me.uk> * * SPDX-License-Identifier: Apache-2.0 */ #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 = NULL; 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, NULL); } puts ("After deletion: "); print_data (list); slist_free_all(list, NULL); return 0; }