template <typename ItemType>
ItemType StackType<ItemType>::findSum() const
{
	if (isEmpty())
		throw EmptyStack();
	ItemType sum = 0;
	NodeType<ItemType> *tempPtr = topPtr;
	while (tempPtr != NULL)
	{
		sum = sum + tempPtr -> info;
		tempPtr = tempPtr -> next;
	}
	return sum;	
}

template <typename ItemType>
void StackType<ItemType>::replaceItem(ItemType oldItem, ItemType newItem)
{
	NodeType<ItemType> *tempPtr = topPtr;
	while (tempPtr != NULL)
	{
		if (tempPtr -> info == oldItem)
			tempPtr -> info = newItem;
		tempPtr = tempPtr -> next;
	}	
}

template <typename ItemType>
void StackType<ItemType>::print() const
{
	if (topPtr == NULL)
		cout << "The stack is empty.\n";
	else
	{
		cout << "The elements of the stack are: \n";
		NodeType<ItemType> *tempPtr = topPtr;
		while (tempPtr != NULL)
		{
			cout << tempPtr -> info << '\t';
			tempPtr = tempPtr -> next;
		}
		cout << endl;
	}
}


