#include <stdio.h>
#include <stdlib.h>
#define VALUE(p) ((p) -> value)
#define NXT(p) ((p) -> nxt)
typedef struct node {
int value;
struct node *nxt;
} NODE;
NODE * new_node (int v, NODE *prox) {
NODE
*l
= (NODE
*)malloc(sizeof(NODE
));
VALUE(l)= v;
NXT(l) = prox;
return l;
}
NODE *add_last(int x, NODE *l) {
NODE *curr=l;
if(l==NULL) {
NODE *aux = new_node(x, l);
l=aux;
return l;
}
while(NXT(curr)!=NULL) {
curr=NXT(curr);
}
NXT(curr)= new_node (x, NULL);
return l;
}
int main() {
NODE *lista=NULL;
lista = add_last(6, lista);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgVkFMVUUocCkgKChwKSAtPiB2YWx1ZSkKI2RlZmluZSBOWFQocCkgKChwKSAtPiBueHQpCgp0eXBlZGVmIHN0cnVjdCBub2RlIHsKCWludCB2YWx1ZTsKCXN0cnVjdCBub2RlICpueHQ7Cn0gTk9ERTsKCk5PREUgKiBuZXdfbm9kZSAoaW50IHYsIE5PREUgKnByb3gpIHsKCU5PREUgKmw9IChOT0RFKiltYWxsb2Moc2l6ZW9mKE5PREUpKTsKCglWQUxVRShsKT0gdjsKCU5YVChsKSA9IHByb3g7CgoJcmV0dXJuIGw7Cn0KCk5PREUgKmFkZF9sYXN0KGludCB4LCBOT0RFICpsKSB7CgoJTk9ERSAqY3Vycj1sOwoKCWlmKGw9PU5VTEwpIHsKCQlOT0RFICphdXggPSBuZXdfbm9kZSh4LCBsKTsKCQlsPWF1eDsKCQlyZXR1cm4gbDsKCX0KCgoJd2hpbGUoTlhUKGN1cnIpIT1OVUxMKSB7CgkJY3Vycj1OWFQoY3Vycik7Cgl9CgoJTlhUKGN1cnIpPSBuZXdfbm9kZSAoeCwgTlVMTCk7CglyZXR1cm4gbDsKfQoKaW50IG1haW4oKSB7CglOT0RFICpsaXN0YT1OVUxMOwoJbGlzdGEgPSBhZGRfbGFzdCg2LCBsaXN0YSk7CgoJcHJpbnRmKCIlZCIsIGxpc3RhLT52YWx1ZSk7Cn0K