Language C++ Write a queue class to implement a queue using a 2 directional link
ID: 3799983 • Letter: L
Question
Language C++
Write a queue class to implement a queue using a 2 directional linked list.
Test the program with the following sequence of code:
queue myQ; ( Use default constructor to initialize front and end to NULL. )
cout<< myQ.size() << endl; // number of elements in queue
myQ.dequeue(); // Try to deqeue when the queue is empty. Should catch UNDERFLOW
myQ.enqueue("Fred");
myQ.enqueue("Liv");
myQ.enqueue("Julie");
myQ.enqueue("Rich");
myQ.enqueue("William");
myQ.enqueue("Olo");
myQ.enqueue("Xi");
myQ.enqueue("Chu");
myQ.enqueue("Annie");
myQ.enqueue("Carlos");
myQ.enqueue("Tuyet");
myQ.enqueue("Sue");
cout<< myQ.front() << endl; // name at front, if not empty
cout<< myQ.end() << endl; // name at end, if not empty
cout<< myQ.size() << endl; // number of elements in queue
cout << myQ.dequeue() << endl;
cout << myQ.dequeue() << endl;
cout << myQ.dequeue() << endl;;
myQ.enqueue("Olive");
myQ.enqueue("Jim");
cout << myQ.dequeue() << endl;
cout << myQ.dequeue() << endl;
cout<< myQ.front() << endl; // name at front, if not empty
cout<< myQ.end() << endl; // name at end, if not empty
cout<< myQ.size() << endl; // number of elements in queue
Explanation / Answer
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
/*
* Node Declaration
*/
struct node
*start, *last;
int counter = 0;
/*
* category Declaration
*/
class double_clist
begin = NULL;
last = NULL;
}
};
/*
* Main: Contains Menu
*/
int main()
worker = new(struct node);
temp->info = value;
temp->next = NULL;
temp->prev = NULL;
come back temp;
}
/*
*INSERTS component AT starting
*/
void double_clist::insert_begin()
{
int value;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
struct node *temp;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
cout<<"Element inserted in empty list"<<endl;
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
{
temp->next = start;
start->prev = temp;
begin = temp;
start->prev = last;
last->next = start;
cout<<"Element inserted"<<endl;
}
}
/*
*INSERTS ELEMNET eventually
*/
void double_clist::insert_last()
{
int value;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
struct node *temp;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
cout<<"Element inserted in empty list"<<endl;
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
}
/*
*INSERTS component AT POSITION
*/
void double_clist::insert_pos()
{
int value, pos, i;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
cout<<endl<<"Enter the postion of component inserted: ";
cin>>pos;
struct node *temp, *s, *ptr;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
if (pos == 1)
{
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
ptr->next = s->next;
s->next->prev = ptr;
if (pos == counter)
counter--;
free(s);
cout<<"Element Deleted"<<endl;
}
/*
* Update worth of a selected node
*/
void double_clist::update()
{
int value, i, pos;
if (start == last && begin == NULL)
s->info = value;
cout<<"Node Updated"<<endl;
}
/*
* Search component within the list
*/
void double_clist::search()
zero, value, i;
bool flag = false;
struct node *s;
if (start == last && begin == NULL)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.