#include<iostream>
using namespace std;
struct tree{
int item;
struct tree *next;
};
tree *creat_tree(int );
void insert_top(tree *&,int);
void show(tree *);
tree *creat_tree(int x){
tree *p;
p=new tree;
p->item=x;
p->next=NULL;
return p;
}
void insert_top(tree *&p,int x){
tree *q;
q=creat_tree(x);
q->next=p;
p=q;
return;
}
void insert_bottom(tree *p,int x){
tree *q,*r;
q=creat_tree(x);
r=p;
while(r->next!=NULL){
r=r->next;
}
r->next=q; //show(q);
}
void show(tree *p){
tree *q;
//q=new tree;
q=p;
while(q){
cout<<q->item<<" - ";
q=q->next;
}
}
main(){
tree *p;
p=creat_tree(0);
insert_top(p,1);
insert_top(p,2);
insert_bottom(p,3);
show(p);
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgdHJlZXsKCWludCBpdGVtOwoJc3RydWN0IHRyZWUgKm5leHQ7Cn07CgkJdHJlZSAqY3JlYXRfdHJlZShpbnQgKTsKCQl2b2lkIGluc2VydF90b3AodHJlZSAqJixpbnQpOwoJCXZvaWQgc2hvdyh0cmVlICopOwp0cmVlICpjcmVhdF90cmVlKGludCB4KXsKCXRyZWUgKnA7CglwPW5ldyB0cmVlOwoJcC0+aXRlbT14OwoJcC0+bmV4dD1OVUxMOwoJcmV0dXJuIHA7Cn0Kdm9pZCBpbnNlcnRfdG9wKHRyZWUgKiZwLGludCB4KXsKCXRyZWUgKnE7CglxPWNyZWF0X3RyZWUoeCk7CglxLT5uZXh0PXA7CglwPXE7CglyZXR1cm47Cn0Kdm9pZCBpbnNlcnRfYm90dG9tKHRyZWUgKnAsaW50IHgpewoJdHJlZSAqcSwqcjsKCXE9Y3JlYXRfdHJlZSh4KTsKCXI9cDsKCXdoaWxlKHItPm5leHQhPU5VTEwpewoJCXI9ci0+bmV4dDsKCX0KCXItPm5leHQ9cTsgLy9zaG93KHEpOwp9CnZvaWQgc2hvdyh0cmVlICpwKXsKCXRyZWUgKnE7CgkvL3E9bmV3IHRyZWU7CglxPXA7Cgl3aGlsZShxKXsKCWNvdXQ8PHEtPml0ZW08PCIgLSAiOwoJcT1xLT5uZXh0OwoJfQp9Cm1haW4oKXsKCXRyZWUgKnA7CglwPWNyZWF0X3RyZWUoMCk7CglpbnNlcnRfdG9wKHAsMSk7CglpbnNlcnRfdG9wKHAsMik7CglpbnNlcnRfYm90dG9tKHAsMyk7CglzaG93KHApOwp9Cg==