All pastes #425035 Raw Edit

Stuff

public text v1 · immutable
·published 2007-04-05 06:02 UTC
rendered paste body
//stack.h
template <class nodeT>
class Node
{
        public:
                Node(nodeT data, Node<nodeT>* next);
                nodeT getData() const;  
                Node<nodeT>* NextNode;

        private:
                nodeT NodeData;
};

template <class stackT>
class Stack
{
        public:
                Stack ();
                bool isEmpty();
                bool push(stackT data);
                stackT pop();

        private:
                Node<stackT>* HeadNode;

};


//stack.cpp
#include <iostream>
#include "stack.h"



template <class nodeT>
Node<nodeT>::Node(nodeT data, Node<nodeT>* next)
{
        NodeData = data;
        NextNode = next;
}

template <class nodeT>
nodeT Node<nodeT>::getData() const
{
        return NodeData;
}

template <class stackT>
Stack<stackT>::Stack()
{
        HeadNode = NULL;
}
template <class stackT>
bool Stack<stackT>::isEmpty(){
        return (HeadNode == NULL) ? true : false;
}
template <class stackT>
bool Stack<stackT>::push(stackT data){
        HeadNode = new Node<stackT>(data, HeadNode);
        return true;
}
template <class stackT>
stackT Stack<stackT>::pop(){
        Node<stackT>* returnNode = HeadNode;

        stackT returnData = HeadNode->getData();
        HeadNode = HeadNode->NextNode;
        delete returnNode;

        return returnData;
}