Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "Stack.h"
- using namespace std;
- template <class T>
- Stack<T>::Stack() {
- stack = NULL;
- size = 0;
- }
- template <class T>
- Stack<T>::~Stack() {
- delete [] stack;
- stack = NULL;
- }
- template <class T>
- void Stack<T>::push(const T& val) {
- size++;
- T *newStack = new T[size];
- for (int i = 0 ; i < size-1 ; i++) {
- newStack[i] = stack[i];
- }
- newStack[size-1] = val;
- delete [] stack;
- stack = newStack;
- }
- template <class T>
- T Stack<T>::pop() {
- int retval;
- if (size >= 0) {
- size--;
- T *newStack = new T[size];
- for (int i = 0 ; i < size ; i++) {
- newStack[i] = stack[i];
- }
- retval = stack[size];
- delete [] stack;
- stack = newStack;
- }
- return retval;
- }
- template <class T>
- T Stack<T>::peek() const {
- if (size-1 >= 0)
- return stack[size-1];
- return 0;
- }
- template <class T>
- int Stack<T>::getSize() const {
- return size;
- }
- /*int main() {
- Stack<int> s;
- s.push(5);
- cout << s.pop() << endl;
- cout << s.getSize() << endl;
- return 0;
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement