#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int val;
struct node *next;
}Node;
Node *head = NULL;
Node* createN(int x){
Node *newnode;
newnode
= (Node
*)malloc(sizeof(Node
)); newnode->val = x;
newnode->next = NULL;
return newnode;
}
void initL(int n){
int x,i;
Node *p;
head = createN(x);
p = head;
for(i=1;i<n;i++){
p->next = createN(x);
p = p->next;
}
}
void freeL(){
Node *p;
while(head!=NULL){
p = head->next;
head = p;
}
}
void printL(){
Node *p = head;
while(p != NULL){
p = p->next;
}
}
void insMiddle(int n, int x){
int i;
Node *p,*q;
p = head; // 1
for(i=1;i<n;i++){ // 2
p = p->next; // 2
}
q = createN(x); // 3
q->next = p->next; // 4
p->next = q; // 5
}
void delMiddle(int n){
int i;
Node *p,*q;
p = head; // 1
for(i=1;i<n-1;i++){ // 2
p = p->next; // 2
}
q = p->next; // 3
p->next = q->next; // 4
}
int main(void){
int i,n,y1,x1,y2;
initL(n);
printL();
insMiddle(y1,x1);
printL();
delMiddle(y2);
printL();
freeL();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KIAp0eXBlZGVmIHN0cnVjdCBub2RlIHsKICAgIGludCB2YWw7CiAgICBzdHJ1Y3Qgbm9kZSAqbmV4dDsKfU5vZGU7CiAKTm9kZSAqaGVhZCA9IE5VTEw7CiAKTm9kZSogY3JlYXRlTihpbnQgeCl7CiAgICBOb2RlICpuZXdub2RlOwogICAgbmV3bm9kZSA9IChOb2RlICopbWFsbG9jKHNpemVvZihOb2RlKSk7CiAgICBuZXdub2RlLT52YWwgPSB4OwogICAgbmV3bm9kZS0+bmV4dCA9IE5VTEw7CiAgICByZXR1cm4gbmV3bm9kZTsKfQogCnZvaWQgaW5pdEwoaW50IG4pewogICAgaW50IHgsaTsKICAgIE5vZGUgKnA7CiAgICBzY2FuZigiJWQiLCZ4KTsKICAgIGhlYWQgPSBjcmVhdGVOKHgpOwogICAgcCA9IGhlYWQ7CiAgICBmb3IoaT0xO2k8bjtpKyspewogICAgICAgIHNjYW5mKCIlZCIsJngpOwogICAgICAgIHAtPm5leHQgPSBjcmVhdGVOKHgpOwogICAgICAgIHAgPSBwLT5uZXh0OwogICAgfQp9CiAKdm9pZCBmcmVlTCgpewogICAgTm9kZSAqcDsKICAgIHdoaWxlKGhlYWQhPU5VTEwpewogICAgICAgIHAgPSBoZWFkLT5uZXh0OwogICAgICAgIGZyZWUoaGVhZCk7CiAgICAgICAgaGVhZCA9IHA7CiAgICB9Cn0KIAp2b2lkIHByaW50TCgpewogICAgTm9kZSAqcCA9IGhlYWQ7CiAgICB3aGlsZShwICE9IE5VTEwpewogICAgICAgIHByaW50ZigiJWQgIixwLT52YWwpOwogICAgICAgIHAgPSBwLT5uZXh0OwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9CiAKIAp2b2lkIGluc01pZGRsZShpbnQgbiwgaW50IHgpewogICAgaW50IGk7CiAgICBOb2RlICpwLCpxOwogICAgcCA9IGhlYWQ7ICAgICAgICAgICAvLyAxCiAgICBmb3IoaT0xO2k8bjtpKyspeyAgIC8vIDIKICAgICAgICBwID0gcC0+bmV4dDsgICAgLy8gMgogICAgfQogICAgcSA9IGNyZWF0ZU4oeCk7ICAgICAvLyAzCiAgICBxLT5uZXh0ID0gcC0+bmV4dDsgIC8vIDQKICAgIHAtPm5leHQgPSBxOyAgICAgICAgLy8gNQp9CiAKdm9pZCBkZWxNaWRkbGUoaW50IG4pewogICAgaW50IGk7CiAgICBOb2RlICpwLCpxOwogICAgcCA9IGhlYWQ7ICAgICAgICAgICAvLyAxCiAgICBmb3IoaT0xO2k8bi0xO2krKyl7IC8vIDIKICAgICAgICBwID0gcC0+bmV4dDsgICAgLy8gMgogICAgfQogICAgcSA9IHAtPm5leHQ7ICAgICAgICAvLyAzCiAgICBwLT5uZXh0ID0gcS0+bmV4dDsgIC8vIDQKICAgIGZyZWUocSk7ICAgICAgICAgICAgLy8gNQp9CiAKIAppbnQgbWFpbih2b2lkKXsKICAgIGludCBpLG4seTEseDEseTI7CiAgICBzY2FuZigiJWQiLCZuKTsKICAgIGluaXRMKG4pOwogICAgcHJpbnRMKCk7CiAgICBzY2FuZigiJWQgJWQiLCZ5MSwmeDEpOwogICAgaW5zTWlkZGxlKHkxLHgxKTsKICAgIHByaW50TCgpOwogICAgc2NhbmYoIiVkIiwmeTIpOwogICAgZGVsTWlkZGxlKHkyKTsKICAgIHByaW50TCgpOwogICAgZnJlZUwoKTsKICAgIHJldHVybiAwOwp9