#include <bits/stdc++.h>
using namespace std;
struct node{
int data;
struct node *next;
};
typedef struct node node;
node *makeNode(int x){
node *newNode = new node();
newNode->data = x;
newNode->next = NULL;
return newNode;
}
void push(node **top, int x){
node *newNode = makeNode(x);
newNode->next = *top;
*top = newNode;
}
void pop(node **top){
if((*top) != NULL){
node *tmp = *top;
(*top) = tmp->next;
delete tmp;
}
}
int Top(node *top){
if(top != NULL)
return top->data;
}
int size(node *top){
int ans = 0;
while(top != NULL){
++ans;
top = top->next;
}
return ans;
}
int main(){
node *st = NULL;
while(1){
cout << "-------------------------------\n";
cout << "1. push\n";
cout << "2. pop\n";
cout << "3. top\n";
cout << "4. size\n";
cout << "0. Thoat\n";
cout << "-------------------------------\n";
int lc; cin >> lc;
if(lc == 1){
int x; cout << "Nhap x :" ; cin >> x;
push(&st, x);
}
else if(lc == 2){
pop(&st);
}
else if(lc == 3){
if(st == NULL) cout << "EMPTY\n";
else
cout << Top(st) << endl;
}
else if(lc == 4){
cout << size(st) << endl;
}
else{
break;
}
}
}
//#include <bits/stdc++.h>
//
//using namespace std;
//
//int n = 0, st[10001];
//
//void push(int x){
// st[n] = x;
// ++n;
//}
//
//void pop(){
// if(n >= 1)
// --n;
//}
//
//int top(){
// return st[n - 1];
//}
//
//int size(){
// return n;
//}
//
//int main(){
// while(1){
// cout << "-------------------------------\n";
// cout << "1. push\n";
// cout << "2. pop\n";
// cout << "3. top\n";
// cout << "4. size\n";
// cout << "0. Thoat\n";
// cout << "-------------------------------\n";
// int lc; cin >> lc;
// if(lc == 1){
// int x; cout << "Nhap x :" ; 1cin >> x;
// push(x);
// }
// else if(lc == 2){
// pop();
// }
// else if(lc == 3){
// if(n == 0) cout << "EMPTY\n";
// cout << top() << endl;
// }
// else if(lc == 4){
// cout << size() << endl;
// }
// else{
// break;
// }
// }
// return 0;
//}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGV7CglpbnQgZGF0YTsKCXN0cnVjdCBub2RlICpuZXh0Owp9OwoKdHlwZWRlZiBzdHJ1Y3Qgbm9kZSBub2RlOwoKbm9kZSAqbWFrZU5vZGUoaW50IHgpewoJbm9kZSAqbmV3Tm9kZSA9IG5ldyBub2RlKCk7CgluZXdOb2RlLT5kYXRhID0geDsKCW5ld05vZGUtPm5leHQgPSBOVUxMOyAKCXJldHVybiBuZXdOb2RlOwp9Cgp2b2lkIHB1c2gobm9kZSAqKnRvcCwgaW50IHgpewoJbm9kZSAqbmV3Tm9kZSA9IG1ha2VOb2RlKHgpOwoJbmV3Tm9kZS0+bmV4dCA9ICp0b3A7CgkqdG9wID0gbmV3Tm9kZTsKfQoKdm9pZCBwb3Aobm9kZSAqKnRvcCl7CglpZigoKnRvcCkgIT0gTlVMTCl7CgkJbm9kZSAqdG1wID0gKnRvcDsKCQkoKnRvcCkgPSB0bXAtPm5leHQ7CgkJZGVsZXRlIHRtcDsKCX0KfQoKaW50IFRvcChub2RlICp0b3ApewoJaWYodG9wICE9IE5VTEwpCgkJcmV0dXJuIHRvcC0+ZGF0YTsKfQoKaW50IHNpemUobm9kZSAqdG9wKXsKCWludCBhbnMgPSAwOwoJd2hpbGUodG9wICE9IE5VTEwpewoJCSsrYW5zOwoJCXRvcCA9IHRvcC0+bmV4dDsKCX0KCXJldHVybiBhbnM7Cn0KCmludCBtYWluKCl7Cglub2RlICpzdCA9IE5VTEw7Cgl3aGlsZSgxKXsKCQljb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoJCWNvdXQgPDwgIjEuIHB1c2hcbiI7CgkJY291dCA8PCAiMi4gcG9wXG4iOwoJCWNvdXQgPDwgIjMuIHRvcFxuIjsKCQljb3V0IDw8ICI0LiBzaXplXG4iOwoJCWNvdXQgPDwgIjAuIFRob2F0XG4iOwoJCWNvdXQgPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CgkJaW50IGxjOyBjaW4gPj4gbGM7CgkJaWYobGMgPT0gMSl7CgkJCWludCB4OyBjb3V0IDw8ICJOaGFwIHggOiIgOyBjaW4gPj4geDsKCQkJcHVzaCgmc3QsIHgpOwoJCX0KCQllbHNlIGlmKGxjID09IDIpewoJCQlwb3AoJnN0KTsKCQl9CgkJZWxzZSBpZihsYyA9PSAzKXsKCQkJaWYoc3QgPT0gTlVMTCkgY291dCA8PCAiRU1QVFlcbiI7CgkJCWVsc2UKCQkJCWNvdXQgPDwgVG9wKHN0KSA8PCBlbmRsOwoJCX0KCQllbHNlIGlmKGxjID09IDQpewoJCQljb3V0IDw8IHNpemUoc3QpIDw8IGVuZGw7CgkJfQoJCWVsc2V7CgkJCWJyZWFrOwoJCX0KCX0KfQoKCi8vI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ci8vCi8vdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy8KLy9pbnQgbiA9IDAsIHN0WzEwMDAxXTsKLy8KLy92b2lkIHB1c2goaW50IHgpewovLwlzdFtuXSA9IHg7Ci8vCSsrbjsKLy99Ci8vCi8vdm9pZCBwb3AoKXsKLy8JaWYobiA+PSAxKQovLwkJLS1uOwovL30KLy8KLy9pbnQgdG9wKCl7Ci8vCXJldHVybiBzdFtuIC0gMV07Ci8vfQovLwovL2ludCBzaXplKCl7Ci8vCXJldHVybiBuOwovL30KLy8KLy9pbnQgbWFpbigpewovLwl3aGlsZSgxKXsKLy8JCWNvdXQgPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7Ci8vCQljb3V0IDw8ICIxLiBwdXNoXG4iOwovLwkJY291dCA8PCAiMi4gcG9wXG4iOwovLwkJY291dCA8PCAiMy4gdG9wXG4iOwovLwkJY291dCA8PCAiNC4gc2l6ZVxuIjsKLy8JCWNvdXQgPDwgIjAuIFRob2F0XG4iOwovLwkJY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKLy8JCWludCBsYzsgY2luID4+IGxjOwovLwkJaWYobGMgPT0gMSl7Ci8vCQkJaW50IHg7IGNvdXQgPDwgIk5oYXAgeCA6IiA7IDFjaW4gPj4geDsKLy8JCQlwdXNoKHgpOwovLwkJfQovLwkJZWxzZSBpZihsYyA9PSAyKXsKLy8JCQlwb3AoKTsKLy8JCX0KLy8JCWVsc2UgaWYobGMgPT0gMyl7Ci8vCQkJaWYobiA9PSAwKSBjb3V0IDw8ICJFTVBUWVxuIjsKLy8JCQljb3V0IDw8IHRvcCgpIDw8IGVuZGw7Ci8vCQl9Ci8vCQllbHNlIGlmKGxjID09IDQpewovLwkJCWNvdXQgPDwgc2l6ZSgpIDw8IGVuZGw7Ci8vCQl9Ci8vCQllbHNlewovLwkJCWJyZWFrOwovLwkJfQovLwl9Ci8vCXJldHVybiAwOwovL30=