#include <stdio.h>
#include<stdlib.h>
struct node
{
int number;
struct node *next;
};
void addNodeSingle(struct node **head, int num, int thesi)
{
if (*head == NULL)
{
struct node *current;
current
= (struct node
*) malloc (1*sizeof(struct node
)); current -> number = num;
current -> next = NULL;
*head = current;
}
else
{
if (thesi == 0)
{
struct node *current;
current
= (struct node
*) malloc (1*sizeof(struct node
)); current -> number = num;
current -> next = *head;
*head = current;
}
else
{
struct node *current, *temp;
current
= (struct node
*) malloc (1*sizeof(struct node
)); current -> number = num;
temp = *head;
while (temp -> next != NULL)
temp = temp -> next;
temp -> next = current;
current -> next = NULL;
}
}
}
void displayList(struct node **head) //Erotima 4o
{
struct node *current;
if(*head == NULL)
printf("I lista einai adeia!\n");
else
{
current= *head ;
while(current != NULL)
{
printf("%d ",current
-> number
); current = current -> next;
}
}
}
void swapElements1(struct node **head)
{
struct node *current, *temp;
current = temp = *head;
while(current != NULL)
{
temp = current;
current = current -> next;
}
*head = (*head)->next;
*head = temp;
current = NULL;
}
int main()
{
struct node *head;
head = NULL;
addNodeSingle(&head,5,1);
addNodeSingle(&head,6,1);
addNodeSingle(&head,2,0);
addNodeSingle(&head,7,0);
addNodeSingle(&head,8,0);
displayList(&head);
swapElements1(&head);
displayList(&head);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlPHN0ZGxpYi5oPgoKc3RydWN0IG5vZGUKewogICAgaW50IG51bWJlcjsKICAgIHN0cnVjdCBub2RlICpuZXh0Owp9OwoKdm9pZCBhZGROb2RlU2luZ2xlKHN0cnVjdCBub2RlICoqaGVhZCwgaW50IG51bSwgaW50IHRoZXNpKQp7CiAgICBpZiAoKmhlYWQgPT0gTlVMTCkKICAgIHsKICAgICAgICBzdHJ1Y3Qgbm9kZSAqY3VycmVudDsKICAgICAgICBjdXJyZW50ID0gKHN0cnVjdCBub2RlKikgbWFsbG9jICgxKnNpemVvZihzdHJ1Y3Qgbm9kZSkpOwogICAgICAgIGN1cnJlbnQgLT4gbnVtYmVyID0gbnVtOwogICAgICAgIGN1cnJlbnQgLT4gbmV4dCA9IE5VTEw7CiAgICAgICAgKmhlYWQgPSBjdXJyZW50OwogICAgfQoKICAgIGVsc2UKICAgIHsKICAgICAgICBpZiAodGhlc2kgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIHN0cnVjdCBub2RlICpjdXJyZW50OwogICAgICAgICAgICBjdXJyZW50ID0gKHN0cnVjdCBub2RlKikgbWFsbG9jICgxKnNpemVvZihzdHJ1Y3Qgbm9kZSkpOwogICAgICAgICAgICBjdXJyZW50IC0+IG51bWJlciA9IG51bTsKICAgICAgICAgICAgY3VycmVudCAtPiBuZXh0ID0gKmhlYWQ7CiAgICAgICAgICAgICpoZWFkID0gY3VycmVudDsKICAgICAgICB9CgogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHN0cnVjdCBub2RlICpjdXJyZW50LCAqdGVtcDsKICAgICAgICAgICAgY3VycmVudCA9IChzdHJ1Y3Qgbm9kZSopIG1hbGxvYyAoMSpzaXplb2Yoc3RydWN0IG5vZGUpKTsKICAgICAgICAgICAgY3VycmVudCAtPiBudW1iZXIgPSBudW07CiAgICAgICAgICAgIHRlbXAgPSAqaGVhZDsKICAgICAgICAgICAgd2hpbGUgKHRlbXAgLT4gbmV4dCAhPSBOVUxMKQogICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAgLT4gbmV4dDsKCiAgICAgICAgICAgIHRlbXAgLT4gbmV4dCA9IGN1cnJlbnQ7CiAgICAgICAgICAgIGN1cnJlbnQgLT4gbmV4dCA9IE5VTEw7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIGRpc3BsYXlMaXN0KHN0cnVjdCBub2RlICoqaGVhZCkgLy9Fcm90aW1hIDRvCnsKICAgIHN0cnVjdCBub2RlICpjdXJyZW50OwogICAgaWYoKmhlYWQgPT0gTlVMTCkKICAgICAgICBwcmludGYoIkkgbGlzdGEgZWluYWkgYWRlaWEhXG4iKTsKCiAgICBlbHNlCiAgICB7CiAgICBjdXJyZW50PSAqaGVhZCA7CiAgICAgICAgd2hpbGUoY3VycmVudCAhPSBOVUxMKQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCAiLGN1cnJlbnQgLT4gbnVtYmVyKTsKICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQgLT4gbmV4dDsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgc3dhcEVsZW1lbnRzMShzdHJ1Y3Qgbm9kZSAqKmhlYWQpCnsKICAgIHN0cnVjdCBub2RlICpjdXJyZW50LCAqdGVtcDsKICAgIGN1cnJlbnQgPSB0ZW1wID0gKmhlYWQ7CgogICAgd2hpbGUoY3VycmVudCAhPSBOVUxMKQogICAgewogICAgICAgIHRlbXAgPSBjdXJyZW50OwogICAgICAgIGN1cnJlbnQgPSBjdXJyZW50IC0+IG5leHQ7CiAgICB9CgogICAgKmhlYWQgPSAoKmhlYWQpLT5uZXh0OwogICAgKmhlYWQgPSB0ZW1wOwogICAgY3VycmVudCA9IE5VTEw7Cn0KCmludCBtYWluKCkKewogICAgc3RydWN0IG5vZGUgKmhlYWQ7CiAgICBoZWFkID0gTlVMTDsKCiAgICBhZGROb2RlU2luZ2xlKCZoZWFkLDUsMSk7CiAgICBhZGROb2RlU2luZ2xlKCZoZWFkLDYsMSk7CiAgICBhZGROb2RlU2luZ2xlKCZoZWFkLDIsMCk7CiAgICBhZGROb2RlU2luZ2xlKCZoZWFkLDcsMCk7CiAgICBhZGROb2RlU2luZ2xlKCZoZWFkLDgsMCk7CgogICAgcHJpbnRmKCJMaXN0IGlzOiAiKTsKICAgIGRpc3BsYXlMaXN0KCZoZWFkKTsKICAgIHN3YXBFbGVtZW50czEoJmhlYWQpOwogICAgcHJpbnRmKCJcbk5ldyBsaXN0IGlzOiAiKTsKICAgIGRpc3BsYXlMaXN0KCZoZWFkKTsKfQ==