//Implementation file//
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct list
{
char *item;
struct list* next;
};
typedef struct list LIST; //aliasing the structure//
LIST *create() //constrcutor//
{
LIST
*L
= (LIST
*)malloc(sizeof (LIST
)); L->next = 0;
return L;
}
LIST* insert(LIST* L, char *newitem)
{
LIST
*newL
= (LIST
*)malloc(sizeof (LIST
)); newL->next = 0;
L->next = newL;
return newL;
}
void display(LIST *L)
{
int i;
for(i=0; L->next != 0;L = L->next) // Assumes there's at least 1 item
{
printf("Elements are: %s\n", L
->item
); }
}
int main ()
{
LIST *startElement;
startElement=create();
LIST *lastElement = insert(startElement, "America");
lastElement = insert(lastElement, "Brazil");
display(startElement);
// Free all memory.. exercise :)
return 0;
}
Ly9JbXBsZW1lbnRhdGlvbiBmaWxlLy8KICNpbmNsdWRlPHN0ZGlvLmg+CiAjaW5jbHVkZTxzdGRsaWIuaD4KICNpbmNsdWRlPHN0cmluZy5oPgogc3RydWN0IGxpc3QKIHsKICAgICBjaGFyICppdGVtOwoJIHN0cnVjdCBsaXN0KiBuZXh0OwogfTsKIHR5cGVkZWYgc3RydWN0IGxpc3QgTElTVDsgLy9hbGlhc2luZyB0aGUgc3RydWN0dXJlLy8KIExJU1QgKmNyZWF0ZSgpICAgICAgLy9jb25zdHJjdXRvci8vCiB7CiAgICAgTElTVCAqTCA9IChMSVNUKiltYWxsb2Moc2l6ZW9mIChMSVNUKSk7CgkgTC0+bmV4dCA9IDA7CiAgICAgcmV0dXJuIEw7CiB9CiBMSVNUKiBpbnNlcnQoTElTVCogTCwgY2hhciAqbmV3aXRlbSkKIHsKICAgICBMLT5pdGVtPShjaGFyKiltYWxsb2Moc2l6ZW9mKGNoYXIpKnN0cmxlbihuZXdpdGVtKSk7CiAgICAgc3RyY3B5KEwtPml0ZW0sIG5ld2l0ZW0pOwoJIExJU1QgKm5ld0wgPSAoTElTVCopbWFsbG9jKHNpemVvZiAoTElTVCkpOwoJIG5ld0wtPm5leHQgPSAwOwoJIEwtPm5leHQgPSBuZXdMOwoJIHJldHVybiBuZXdMOwogfQogdm9pZCBkaXNwbGF5KExJU1QgKkwpCiB7CiAgICAgaW50IGk7CgkgZm9yKGk9MDsgTC0+bmV4dCAhPSAwO0wgPSBMLT5uZXh0KSAvLyBBc3N1bWVzIHRoZXJlJ3MgYXQgbGVhc3QgMSBpdGVtCiAgICAgewogICAgICAgICBwcmludGYoIkVsZW1lbnRzIGFyZTogJXNcbiIsIEwtPml0ZW0pOwogICAgIH0KIH0KIGludCBtYWluICgpCiB7CiAgICAgTElTVCAqc3RhcnRFbGVtZW50OwogICAgIHN0YXJ0RWxlbWVudD1jcmVhdGUoKTsKICAgICBMSVNUICpsYXN0RWxlbWVudCA9IGluc2VydChzdGFydEVsZW1lbnQsICJBbWVyaWNhIik7CiAgICAgbGFzdEVsZW1lbnQgPSBpbnNlcnQobGFzdEVsZW1lbnQsICJCcmF6aWwiKTsKICAgICBkaXNwbGF5KHN0YXJ0RWxlbWVudCk7CiAgICAgLy8gRnJlZSBhbGwgbWVtb3J5Li4gZXhlcmNpc2UgOikKICAgICByZXR1cm4gMDsKIH0=