Open main menu

CDOT Wiki β

Changes

Q1sol the solution

1,203 bytes removed, 09:52, 5 August 2010
no edit summary
<code><tt><nowikisource lang="cpp">
//to write a linked list like structure, you must begin with a node. Without the node,
//you can't have a linked list.
}
//to write a linked list like structure, you must begin with a node. Without the node,
//you can't have a linked list.
template <class T>
struct Node{
T data_;
Node<T>* next_;
};
 
template <class T>
class Stack{
Node<T>* start_;
public:
/*this constructor initializes the stack to an empty stack*/
Stack();
/*this function adds a piece of data of type T to the stack and returns
nothing*/
void push(T data);
 
/*removes and returns a piece of data from the stack. If the stack is
empty throw the string "empty stack"*/
T pop()
 
/*returns true if empty, false otherwise*/
bool isempty();
};
template <class T>
Stack<T>::Stack(){
start_=NULL;
}
 
template <class T>
void Stack<T>::push(T data){
Node<T>* nn;
nn=new Node<T>;
nn->data_=data;
nn->next_=start_;
start_=nn;
}
template <class T>T Stack<T>::pop(){ T rc; if(isempty()){ throw "Empty Stack"; } else{ //this else is optional because if you throw an exception,rest rc=start_->data_; Node<T>* rm=start_; start_=start_->next; delete rm; } return rc; } template <class T>bool Stack<T>::isempty(){ bool rc=true; if(start_){ rc=false; } return rc;}</nowiki></tt></codesource>
1
edit