Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- struct stack
- {
- /// int stk[10];
- int *stk;
- int cap, size, init_cap;
- void init(int input_cap)
- {
- /// int stk[10];
- stk = (int *)malloc(input_cap * sizeof(int));
- cap = input_cap;
- init_cap = input_cap;
- size = 0;
- }
- void push_front(int value)
- {
- /// size --> index
- if(size == cap)
- {
- /// new cap = old cap + init cap;
- /// 10 = 5 + 5
- /// 15 = 10 + 5
- /// 20 = 15 + 5
- cap = cap + init_cap;
- realloc(stk, cap * sizeof(int));
- }
- stk[size] = value;
- size = size + 1; /// size++
- }
- int pop_front()
- {
- /// index --> size;
- int temp = stk[size];
- size = size - 1;
- return temp;
- }
- void print()
- {
- int i;
- for(i = 0; i < size; i++)
- cout << stk[i] << endl;
- }
- };
- int main()
- {
- stack s;
- s.init(10);
- //cout << s.size << ' ' << s.cap;
- s.push_front(10);
- s.push_front(20);
- s.push_front(30);
- s.push_front(40);
- s.print();
- cout << "##\n";
- s.pop_front();
- s.pop_front();
- s.print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement