#include <iostream>
#include <algorithm>
#include <cstring>
#include <cctype>
struct list {
struct list * next;
int content;
};
struct list * createList()
{
return (struct list *)malloc(sizeof(struct list *));
}
void addToList(struct list * lst, int content)
{
struct list * newList = createList();
newList->next = lst;
newList->content = content;
lst = newList;
}
void printList(struct list * lst)
{
if (lst == NULL)
return;
struct list * current = lst;
do {
printf("(%d,%p) ", current->content, current);
} while ((current = current->next) != NULL);
printf("\n");
}
int main(int argc, char ** argv)
{
struct list * nl = createList();
addToList(nl, 5);
addToList(nl, 7);
addToList(nl, 2);
addToList(nl, 1);
addToList(nl, 9);
addToList(nl, 3);
printList(nl);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNjdHlwZT4KCnN0cnVjdCBsaXN0IHsKCXN0cnVjdCBsaXN0ICogbmV4dDsKCWludCBjb250ZW50Owp9OwoKc3RydWN0IGxpc3QgKiBjcmVhdGVMaXN0KCkKewoJcmV0dXJuIChzdHJ1Y3QgbGlzdCAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IGxpc3QgKikpOwp9CnZvaWQgYWRkVG9MaXN0KHN0cnVjdCBsaXN0ICogbHN0LCBpbnQgY29udGVudCkKewoJc3RydWN0IGxpc3QgKiBuZXdMaXN0ID0gY3JlYXRlTGlzdCgpOwoJbmV3TGlzdC0+bmV4dCA9IGxzdDsKCW5ld0xpc3QtPmNvbnRlbnQgPSBjb250ZW50OwoJbHN0ID0gbmV3TGlzdDsKfQp2b2lkIHByaW50TGlzdChzdHJ1Y3QgbGlzdCAqIGxzdCkKewoJaWYgKGxzdCA9PSBOVUxMKQoJCXJldHVybjsKCXN0cnVjdCBsaXN0ICogY3VycmVudCA9IGxzdDsKCWRvIHsKCQlwcmludGYoIiglZCwlcCkgIiwgY3VycmVudC0+Y29udGVudCwgY3VycmVudCk7Cgl9IHdoaWxlICgoY3VycmVudCA9IGN1cnJlbnQtPm5leHQpICE9IE5VTEwpOwoJcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKiBhcmd2KQp7CglzdHJ1Y3QgbGlzdCAqIG5sID0gY3JlYXRlTGlzdCgpOwoJYWRkVG9MaXN0KG5sLCA1KTsKCWFkZFRvTGlzdChubCwgNyk7CglhZGRUb0xpc3QobmwsIDIpOwoJYWRkVG9MaXN0KG5sLCAxKTsKCWFkZFRvTGlzdChubCwgOSk7CglhZGRUb0xpc3QobmwsIDMpOwoJcHJpbnRMaXN0KG5sKTsKCXJldHVybiAwOwp9