- Do the add method of the Queue as exercise
Source Code:
Queue.h file
#pragma once
#ifndef __QUEUE_H__
#define __QUEUE_H__
class Queue;
class Node{
int _data;
Node* _next;
Node(int data, Node* next= (Node*)0);
friend class Queue;
};
class Queue{
private:
Node* _head;
public:
Queue();
void add(int data);
int remove();
bool isEmpty();
virtual ~Queue();
};
#endif
Queue.cpp file
#include "queue.h"
Node::Node(int data, Node* next) {
_data = data;
_next = next;
}
Queue::Queue() {
_head = (Node*)0;
}
void Queue::add(int data) {
// 1 create node, and 2 point to next node
Node* toAdd= new Node(data, _head);
_head = toAdd; // 3 point to new node
}
int Queue::remove() {
int ret = _head->_data; // 1
// int ret = (*_head)._data; // 1 crazy but ok
Node* toDel = _head; // 2
_head = _head->_next; // 3
// _head = toDel->_next; // same as 3
delete toDel; // 5
return ret;
}
bool Queue::isEmpty() {
/*if(_head == (Node*)0) {
return true;
}
else {
return false;
}*/
return _head == (Node*)0 ? true : false;
}
Queue::~Queue() {
while(!isEmpty()) {
remove();
}
}
No comments:
Post a Comment