#include <iostream>
using namespace std;
struct node
{
int data;
struct node *next;
};
void push(struct node** head_ref, int new_data)
{
struct node* new_node = (struct node*) malloc(sizeof(struct node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
return;
}
void printList(struct node *node)
{
while (node != NULL)
{
printf(" %d ", node->data);
node = node->next;
}
return;
}
int main() {
struct node* head = NULL;
push(&head, 7);
push(&head, 1);
push(&head, 3);
push(&head, 2);
push(&head, 8);
printList(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3Qgbm9kZQp7CiAgICBpbnQgZGF0YTsKICAgIHN0cnVjdCBub2RlICpuZXh0Owp9OwoKdm9pZCBwdXNoKHN0cnVjdCBub2RlKiogaGVhZF9yZWYsIGludCBuZXdfZGF0YSkKewogICAgc3RydWN0IG5vZGUqIG5ld19ub2RlID0gKHN0cnVjdCBub2RlKikgbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm9kZSkpOwogICAgbmV3X25vZGUtPmRhdGEgID0gbmV3X2RhdGE7CiAgICBuZXdfbm9kZS0+bmV4dCA9ICgqaGVhZF9yZWYpOwogICAgKCpoZWFkX3JlZikgICAgPSBuZXdfbm9kZTsKICAgIHJldHVybjsKfQoKdm9pZCBwcmludExpc3Qoc3RydWN0IG5vZGUgKm5vZGUpCnsKICAgIHdoaWxlIChub2RlICE9IE5VTEwpCiAgICB7CiAgICAgICAgcHJpbnRmKCIgJWQgIiwgbm9kZS0+ZGF0YSk7CiAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CiAgICB9CiAgICAgcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKCXN0cnVjdCBub2RlKiBoZWFkID0gTlVMTDsKIAogICAgcHVzaCgmaGVhZCwgNyk7CiAgICBwdXNoKCZoZWFkLCAxKTsKICAgIHB1c2goJmhlYWQsIDMpOwogICAgcHVzaCgmaGVhZCwgMik7CiAgICBwdXNoKCZoZWFkLCA4KTsKICAgIHByaW50TGlzdChoZWFkKTsKCXJldHVybiAwOwp9