Add RD of queue using linked list

This commit is contained in:
2020-06-12 00:21:59 -04:00
parent f0257c720d
commit 1076427f84
4 changed files with 390 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
/*#############################################################################
## Author: Shaun Reed ##
## Legal: All Content (c) 2020 Shaun Reed, all rights reserved ##
## About: An example of a queue implementation using linked lists ##
## ##
## Contact: shaunrd0@gmail.com | URL: www.shaunreed.com | GitHub: shaunrd0 ##
##############################################################################
## queuelist.h
*/
#ifndef QUEUELIST_H
#define QUEUELIST_H
#include <iostream>
class QueueList {
public:
QueueList() : head(NULL), tail(NULL){};
QueueList(const QueueList& rhs);
QueueList operator=(QueueList rhs);
~QueueList();
bool enqueue(int val);
int dequeue();
int next() const;
bool isEmpty() const;
void print() const;
void makeEmpty();
private:
struct Node {
int data;
Node *next;
Node(): data(), next(NULL) {};
Node(int val): data(val), next(NULL) {};
};
Node *head, *tail;
bool enqueue(int val, Node *&head);
int dequeue(Node *&tail);
void print(Node *start) const;
void makeEmpty(Node *&head);
};
#endif