Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MYSTACK_H_
- #define MYSTACK_H_
- /////////////////////////////////////////////////////////////////////////////
- #include "LinkList.h" //single linked-list char only
- #include <iostream>
- using namespace std;
- template<class T>
- class MyStack {
- public:
- MyStack();
- void push(T _data); //O(1)
- void pop(); //O(1)
- T top(); //O(1)
- bool isEmpty(); //O(1)
- void clear(); //O(n)
- int size(); //O(1)
- void print();
- private:
- LinkList<T> Link;
- int sz;
- };
- template<class T>
- MyStack<T>::MyStack() {
- sz = 0;
- }
- template<class T>
- void MyStack<T>::push(T _data) {
- Link.addfront(_data);
- sz++;
- }
- template<class T>
- void MyStack<T>::pop() {
- Link.erasefront();
- (sz == 0 ? sz = 0 : sz--);
- }
- template<class T>
- T MyStack<T>::top() {
- return Link.showfront();
- }
- template<class T>
- bool MyStack<T>::isEmpty() {
- return Link.isempty();
- }
- template<class T>
- void MyStack<T>::clear() {
- Link.clear();
- }
- template<class T>
- int MyStack<T>::size() {
- return sz;
- }
- template<class T>
- void MyStack<T>::print() {
- Link.print();
- }
- /////////////////////////////////////////////////////////////////////////////
- #endif /* MYSTACK_H_ */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement