#include<stdio.h>
#include<stdlib.h>
struct linkedlist{
int data;
struct linkedlist * next;
} ;
typedef struct linkedlist * node;
void insert( node* head, int t)
{
node * o,* p,* q;
o=* head;
int n;
while ( t-- )
{
p=& ( * o) -> next;
o=& ( * o) -> next;
}
* q
= ( node
) malloc ( sizeof ( struct linkedlist
) ) ; * q-> data= n;
* o-> next=* q;
* p=* q-> next;
* q=* o-> next;
}
void search( node head, int n)
{
node i;
i= head;
while ( i!= NULL)
{
if ( i-> data== n)
break ; }
i= i-> next;
}
}
void printvalue( node head)
{
node current;
current= head;
while ( current!= NULL)
{
current= current-> next;
}
}
int main( )
{
int n, p, t;
node head;
head= NULL;
head
= ( node
) malloc ( sizeof ( struct linkedlist
) ) ;
if ( head== NULL)
{ return 0 ; }
node temp= head;
for ( int i= 0 ; i< n; i++ )
{
if ( i< n- 1 )
{
int k;
temp-> data= k;
temp
-> next
= ( node
) malloc ( sizeof ( struct linkedlist
) ) ; temp= temp-> next;
}
else
{
int k;
temp-> data= k;
temp
-> next
= ( node
) malloc ( sizeof ( struct linkedlist
) ) ;
temp-> next= NULL;
}
}
//printvalue(head);//
search( head, p) ;
insert( & head, t) ;
printvalue( head) ;
return 0 ;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnN0cnVjdCBsaW5rZWRsaXN0ewogICAgICAgIGludCBkYXRhOwogICAgICAgIHN0cnVjdCBsaW5rZWRsaXN0ICpuZXh0OwogICAgfTsKICAgIHR5cGVkZWYgc3RydWN0IGxpbmtlZGxpc3QgKm5vZGU7CiAgICB2b2lkIGluc2VydChub2RlKiBoZWFkLGludCB0KQogICAgewogICAgICAgIG5vZGUgKm8sKnAsKnE7CiAgICAgICAgbz0qaGVhZDsKICAgICAgICBpbnQgbjsKICAgICAgICBzY2FuZigiJWQiLCZuKTsKICAgICAgICB3aGlsZSh0LS0pCiAgICAgICAgewogICAgICAgICAgICAKICAgICAgICAgICAgcD0mKCpvKS0+bmV4dDsKICAgICAgICAgICAgbz0mKCpvKS0+bmV4dDsKCgogICAgICAgIH0KICAgICAgICAqcT0obm9kZSltYWxsb2Moc2l6ZW9mKHN0cnVjdCBsaW5rZWRsaXN0KSk7CiAgICAgICAgKnEtPmRhdGE9bjsKICAgICAgICAKICAgICAgICAKICAgICAgIAogICAgICAgICpvLT5uZXh0PSpxOwogICAgICAgICpwPSpxLT5uZXh0OwogICAgICAgICpxPSpvLT5uZXh0OwogICAgICAgIAogICAgICAgIAoKICAgIH0KICAgIHZvaWQgc2VhcmNoKG5vZGUgaGVhZCwgaW50IG4pCiAgICB7CiAgICAgICAgbm9kZSBpOwogICAgICAgIGk9aGVhZDsKICAgICAgICB3aGlsZShpIT1OVUxMKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaS0+ZGF0YT09bikKICAgICAgICAgICAgICAgIHtwcmludGYoIiVkXG4iLGktPmRhdGEpOwogICAgICAgICAgICBicmVhazt9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgaT1pLT5uZXh0OwoKCiAgICAgICAgfQoKICAgIH0Kdm9pZCBwcmludHZhbHVlKG5vZGUgaGVhZCkKewogICAgbm9kZSBjdXJyZW50OwogICAgY3VycmVudD1oZWFkOwogICAgd2hpbGUoY3VycmVudCE9TlVMTCkKICAgIHsKICAgICAgICBwcmludGYoIiVkXG4iLGN1cnJlbnQtPmRhdGEpOwogICAgICAgIGN1cnJlbnQ9Y3VycmVudC0+bmV4dDsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbixwLHQ7CiAgICBzY2FuZigiJWRcbiIsJm4pOwogICAgbm9kZSBoZWFkOwogICAgaGVhZD1OVUxMOwogICAgIGhlYWQ9KG5vZGUpbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGlua2VkbGlzdCkpOwogICAgCiAgICBpZihoZWFkPT1OVUxMKQogICAgICAgIHtyZXR1cm4gMDt9CiAgICBub2RlIHRlbXA9aGVhZDsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgCiAgICAgICAgaWYoaTxuLTEpCiAgICAgICAgewogICAgICAgICAgICAKICAgICAgICAgICAgaW50IGs7CiAgICAgICAgICAgIHNjYW5mKCIlZFxuIiwmayk7CiAgICAgICAgICAgIHRlbXAtPmRhdGE9azsKICAgICAgICAgICAgdGVtcC0+bmV4dD0obm9kZSltYWxsb2Moc2l6ZW9mKHN0cnVjdCBsaW5rZWRsaXN0KSk7CiAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKCiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGludCBrOwogICAgICAgICAgICBzY2FuZigiJWRcbiIsJmspOwogICAgICAgICAgICB0ZW1wLT5kYXRhPWs7CiAgICAgICAgICAgIHRlbXAtPm5leHQ9KG5vZGUpbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGlua2VkbGlzdCkpOwogICAgICAgICAgICAKICAgICAgICAgICAgdGVtcC0+bmV4dD1OVUxMOwoKICAgICAgICB9CgoKICAgIH0KICAgIHByaW50ZigiXG4iKTsKICAgIC8vcHJpbnR2YWx1ZShoZWFkKTsvLwogICAgc2NhbmYoIiVkXG4iLCZwKTsKICAgIHNlYXJjaChoZWFkLCBwKTsKICAgIHNjYW5mKCIlZFxuIiwmdCk7CiAgICBpbnNlcnQoJmhlYWQsdCk7CiAgICBwcmludHZhbHVlKGhlYWQpOwogICAgcmV0dXJuIDA7CgoKfQ==