#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 insHead(int x){
Node *p;
p = createN(x);
p->next = head;
head = p;
}
void delHead(){
Node *p;
p = head;
head = head->next;
}
int main(void){
int i,n,x1;
initL(n);
printL();
insHead(x1);
printL();
delHead();
printL();
freeL();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IG5vZGV7CglpbnQgdmFsOwoJc3RydWN0IG5vZGUgKm5leHQ7Cn1Ob2RlOwoKTm9kZSAqaGVhZCA9IE5VTEw7CgpOb2RlICpjcmVhdGVOKGludCB4KXsKCU5vZGUgKm5ld25vZGU7CgluZXdub2RlID0gKE5vZGUqKW1hbGxvYyhzaXplb2YoTm9kZSkpOwoJbmV3bm9kZS0+dmFsID0geDsKCW5ld25vZGUtPm5leHQgPSBOVUxMOwoJcmV0dXJuIG5ld25vZGU7Cn0KCnZvaWQgaW5pdEwoaW50IG4pewoJaW50IHgsaTsKCU5vZGUgKnA7CglzY2FuZigiJWQiLCZ4KTsKCWhlYWQgPSBjcmVhdGVOKHgpOwoJcCA9IGhlYWQ7Cglmb3IoaT0xO2k8bjtpKyspewoJCXNjYW5mKCIlZCIsJngpOwoJCXAtPm5leHQgPSBjcmVhdGVOKHgpOwoJCXAgPSBwLT5uZXh0OwoJfQp9Cgp2b2lkIGZyZWVMKCl7CglOb2RlICpwOwoJd2hpbGUoaGVhZCE9TlVMTCl7CgkJcCA9IGhlYWQtPm5leHQ7CgkJZnJlZShoZWFkKTsKCQloZWFkID0gcDsKCX0KfQoKdm9pZCBwcmludEwoKXsKCU5vZGUgKnAgPSBoZWFkOwoJd2hpbGUocCE9TlVMTCl7CgkJcHJpbnRmKCIlZCIscC0+dmFsKTsKCQlwID0gcC0+bmV4dDsKCX0KCXByaW50ZigiXG4iKTsKfQoKdm9pZCBpbnNIZWFkKGludCB4KXsKCU5vZGUgKnA7CglwID0gY3JlYXRlTih4KTsKCXAtPm5leHQgPSBoZWFkOwoJaGVhZCA9IHA7Cn0KCnZvaWQgZGVsSGVhZCgpewoJTm9kZSAqcDsKCXAgPSBoZWFkOwoJaGVhZCA9IGhlYWQtPm5leHQ7CglmcmVlKHApOwp9CgppbnQgbWFpbih2b2lkKXsKCWludCBpLG4seDE7CglzY2FuZigiJWQiLCZuKTsKCWluaXRMKG4pOwoJcHJpbnRMKCk7CglzY2FuZigiJWQiLCZ4MSk7CglpbnNIZWFkKHgxKTsKCXByaW50TCgpOwoJZGVsSGVhZCgpOwoJcHJpbnRMKCk7CglmcmVlTCgpOwoJcmV0dXJuIDA7Cn0KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=