how to make provision of a dynamic array say of size 5 with each slot
holding a structure of type passenger?
/*
* Labsheet Queues
Question 1
Implement a program that shows a queue of people lining at a bus-stop.
The first one in the queue is the first one to get on the bus.
Your program should display the following data :
Id
First Name
Last Name
DestinationAddr ess
The id is to be incremented automatically. By default, it can be set
to 0.
*
* IMPLEMENTATION USING AN ARRAY
*/
#include <iostream>
using namespace std;
struct passenger{
int id;
char first_name[15];
char last_name[30];
char dest_add[20];
};
typedef passenger QueueElementTyp e;
class Queue{
private:
QueueElementTyp e * elements;
int MaxQueue;
int Front;
int Rear;
int fullqueue();
int emptyqueue();
public:
Queue(int MS);
void Enq(QueueElemen tType apassenger);
QueueElementTyp e Deq();
void printQueue();
~Queue();
};
Queue::Queue(in t MS){
elements = new QueueElementTyp e;
MaxQueue = MS;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
Queue::~Queue() {
delete [] elements;
MaxQueue = 0;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
int Queue::fullqueu e(){
return(Front = (Rear + 1) % MaxQueue);
}
int Queue::emptyque ue(){
return (Front == Rear);}
void Queue::Enq(Queu eElementType apassenger){
if (fullqueue())
cout<<"Queue is Full";
else{
Rear = (Rear +1) % MaxQueue;
cout<<"Enter passenger first name:";
cin>apassenger. first_name;
cout<<endl<<"En ter passenger last name:";
cin>>apassenger .last_name;
cout<<endl<<"En ter destination address:";
cin>>apassenger .dest_add;
apassenger.id = 1;
elements[Rear] = apassenger;
}
}
QueueElementTyp e Queue::Deq(){
QueueElementTyp e mypass;
if (emptyqueue())
cout<<"Queue is empty";
else{
Front = (Front + 1) % MaxQueue;
mypass = elements[Front];
}
return(mypass);
}
void Queue::printQue ue(){
for(int i = Front ; i<= Rear; i++){
cout<<elements[i].id;
cout<<elements[i].first_name;
cout<<elements[i].last_name;
cout<<elements[i].dest_add;
}
}
int main(int argc, char** argv)
{
Queue myqueue(5);
QueueElementTyp e mypass;
myqueue.Enq(myp ass);
myqueue.printQu eue();
myqueue.Enq(myp ass);
myqueue.printQu eue();
return 0;
}