#include <stdlib.h>
struct list_element {
list_element * next;
int value;
};
list_element * createElement(int value) {
list_element * new_el;
new_el = (list_element*)malloc(sizeof(list_element));
new_el->next = NULL;
new_el->value = value;
return new_el;
}
list_element * head;
void addElementToList(list_element * new_el) {
if (head == NULL)
{
head = new_el;
}
else {
new_el->next = head;
head = new_el;
}
}
int main() {
addElementToList(createElement(1));
addElementToList(createElement(2));
addElementToList(createElement(3));
addElementToList(createElement(4));
return 0;
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgoKc3RydWN0IGxpc3RfZWxlbWVudCB7CglsaXN0X2VsZW1lbnQgKiBuZXh0OwoJaW50IHZhbHVlOwp9OwoKbGlzdF9lbGVtZW50ICogY3JlYXRlRWxlbWVudChpbnQgdmFsdWUpIHsKCglsaXN0X2VsZW1lbnQgKiBuZXdfZWw7CgluZXdfZWwgPSAobGlzdF9lbGVtZW50KiltYWxsb2Moc2l6ZW9mKGxpc3RfZWxlbWVudCkpOwoJbmV3X2VsLT5uZXh0ID0gTlVMTDsKCW5ld19lbC0+dmFsdWUgPSB2YWx1ZTsKCXJldHVybiBuZXdfZWw7Cn0KCmxpc3RfZWxlbWVudCAqIGhlYWQ7Cgp2b2lkIGFkZEVsZW1lbnRUb0xpc3QobGlzdF9lbGVtZW50ICogbmV3X2VsKSB7CgoJaWYgKGhlYWQgPT0gTlVMTCkKCXsKCQloZWFkID0gbmV3X2VsOwoJfQoJZWxzZSB7CgkJbmV3X2VsLT5uZXh0ID0gaGVhZDsKCQloZWFkID0gbmV3X2VsOwoJfQoKfQoKaW50IG1haW4oKSB7CgkKCWFkZEVsZW1lbnRUb0xpc3QoY3JlYXRlRWxlbWVudCgxKSk7CglhZGRFbGVtZW50VG9MaXN0KGNyZWF0ZUVsZW1lbnQoMikpOwoJYWRkRWxlbWVudFRvTGlzdChjcmVhdGVFbGVtZW50KDMpKTsKCWFkZEVsZW1lbnRUb0xpc3QoY3JlYXRlRWxlbWVudCg0KSk7CgkKCXJldHVybiAwOwp9Cgo=