Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <windows.h>
- using namespace std;
- #define X first
- #define Y second
- #define pb push_back
- #define mp make_pair
- #define sz size()
- #define all(x) (x).begin(),(x).end()
- #define sqr(x) (x)*(x)
- struct node {
- int value;
- node * prev;
- node() {
- value = 0;
- prev = NULL;
- }
- };
- struct stack{
- node *last;
- int siz;
- stack() {
- last = (node*)malloc(sizeof(last));
- last->prev = NULL;
- last->value = 0;
- siz = 0;
- }
- void push(int n) {
- node *t = (node*)malloc(sizeof(last));
- if(siz == 0 ) {
- last -> value = n;
- } else {
- t -> prev = last;
- t -> value = n;
- last = t;
- }
- siz++;
- }
- void pop() {
- if(siz > 0) {
- node *t = last;
- last = last -> prev;
- free(t);
- }
- siz--;
- }
- int top() {
- if(siz > 0) {
- return last -> value;
- }
- }
- int size() {
- return siz;
- }
- void clear() {
- while(siz > 0) {
- node *t = last;
- last = last -> prev;
- free(t);
- siz--;
- }
- }
- };
- int main() {
- stack a;
- for(int i = 0; i < 1000000; i++) {
- a.push(i);
- //cout << a.top() << endl;
- }
- //Sleep(1000);
- puts("OK");
- a.clear();
- return 0;
- }
Add Comment
Please, Sign In to add comment