#include <stdio.h>
#include <stdlib.h>
struct sdp{
int num;
struct sdp *ps;
struct sdp *pd;
};
struct sdp* fcl(int ns);
void fs(struct sdp *pst);
int main(void) {
struct sdp *ps;
ps=fcl(5);
fs(ps);
return 0;
}
struct sdp* fcl(int ns){
struct sdp *ps1,*ps2;
ps1
=(struct sdp
*)malloc(sizeof(struct sdp
));
ps1->num=ns;
ps1->pd=NULL;
while(ns>1){
ns--;
ps2
=(struct sdp
*)malloc(sizeof(struct sdp
));
ps1->ps=ps2;
ps2->pd=ps1;
ps1=ps2;
}
ps1->ps=NULL;
return ps1;
}
void fs(struct sdp *pst){
while(pst!=NULL){
pst=pst->pd;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCgpzdHJ1Y3Qgc2RwewoJCglpbnQgbnVtOwoJCglzdHJ1Y3Qgc2RwICpwczsKCXN0cnVjdCBzZHAgKnBkOwoJCgkKfTsKCnN0cnVjdCBzZHAqIGZjbChpbnQgbnMpOwp2b2lkIGZzKHN0cnVjdCBzZHAgKnBzdCk7CgoKCmludCBtYWluKHZvaWQpIHsKCQoJCglzdHJ1Y3Qgc2RwICpwczsKCQoJcHM9ZmNsKDUpOwoJCglmcyhwcyk7CgkKCQoJcmV0dXJuIDA7Cn0KCgoKc3RydWN0IHNkcCogZmNsKGludCBucyl7CgkKCXN0cnVjdCBzZHAgKnBzMSwqcHMyOwoJCglwczE9KHN0cnVjdCBzZHAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHNkcCkpOwoJCglwczEtPm51bT1uczsKCQoJcHMxLT5wZD1OVUxMOwoJCgl3aGlsZShucz4xKXsKCQkKCQlucy0tOwoJCQoJCXBzMj0oc3RydWN0IHNkcCopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc2RwKSk7CgkJCgkJcHMxLT5wcz1wczI7CgkJCgkJcHMyLT5wZD1wczE7CgkJCgkJcHMxPXBzMjsKCQkKCX0KCQoJcHMxLT5wcz1OVUxMOwoJCglyZXR1cm4gcHMxOwoJCn0gCgoKdm9pZCBmcyhzdHJ1Y3Qgc2RwICpwc3QpewoJCgkKCXdoaWxlKHBzdCE9TlVMTCl7CgkJCgkJcHJpbnRmKCIlZFxuIixwc3QtPm51bSk7CgkJcHJpbnRmKCIlZFxuIixwc3QtPnBzKTsKCQlwcmludGYoIiVkXG4iLHBzdC0+cGQpOwoJCXByaW50ZigiJWRcbiIscHN0KTsKCQlwcmludGYoIlxuXG4iKTsKCQkKCQlwc3Q9cHN0LT5wZDsKCQkKCX0KCQoJCgkKfQoK