Saturday, 9 March 2013

Program of Queue - add and remove node,next node in the queue...

Program of Queue
Function description:
1.Add a node
2.Remove a node
3.Find next node
//queue.cpp
//HYQ
//Mar 07, 2013
//Release v0.1

#include "queue.h"
using namespace std;

Node::Node(int data, Node* next){
  _data = data;
  _next = next;
}

Queue::Queue(){
  _head = (Node*)0;
}

//add a Node at the end of queue
void Queue::add(int data){
  Node* toAdd=_head;
  Node* add = new Node(data);
    
  if (_head){
    while ((nextNode(toAdd)!=0) && (toAdd=nextNode(toAdd))); 
    toAdd->_next = add;
  }
  else{
    _head = add;
  }
}

int Queue::remove(){
  int ret = _head->_data;  // 1
  Node* toDel = _head;  // 2
  _head = _head->_next;  // 3
  delete toDel; // 5 
  return ret;
}

bool Queue::isEmpty(){
  return !_head;
}

//Return the next Node of current Node
Node* Queue::nextNode(const Node* currentNode) const{
  return currentNode->_next;
}

Queue::~Queue(){
  while(!isEmpty()){
    remove();
  }
}



No comments:

Post a comment