typedef struct Node{
int data;
struct Node *next;
}Node;
Node *createNode(){
Node *head = NULL;
if(head == NULL){
head = (Node*)malloc(sizeof(Node));
head->next = NULL;
}
return head;
}
void addHead(Node *node,int num){
Node *head = node;
Node *p = (Node*)malloc(sizeof(Node));
p->data = num;
p->next = head->next;
head->next = p;
}
void addTail(Node *node,int num){
Node *temp = node;
while(temp->next != NULL){
temp = temp->next;
}
Node *p = (Node*)malloc(sizeof(Node));
p->data = num;
temp->next = p;
temp = p;
temp->next = NULL;
}
void _remove(Node *node, int num){
Node *temp = node , *p = node->next;
while(p != NULL){
if(p->data == num){
temp->next = p->next;
}
temp = p;
p = p->next;
}
}
void addRand(Node *node,int loc,int num){
Node *temp = node->next;
while(temp != NULL){
if(temp->data == loc){
Node *p = (Node*)malloc(sizeof(Node));
p->data = num;
p->next = temp->next;
temp->next = p;
break;
}
temp = temp->next;
}
}
void swap(Node *node){
Node *temp = node->next, *p = NULL, *q = NULL;
while(temp != NULL){
q = temp->next;
temp->next = p;
p = temp;
temp = q;
}
while(p != NULL){
printf("%d\n",p->data);
p = p->next;
}
}