You are on page 1of 6

COMSATS UNIVERSITY ISLAMABAD

(LAHORE CAMPUS)

NAME : SAFEER ALI MEHDI

REG. # FA19-BSE-051

TEACHER : DR. FURKH ZESHAN

COURSE : DATA STRUCTURE AND ALGORITHM

LAB SESSIONAL # 02

DATE TO SUBMIT : 7th DECEMBER 2020


QUESTION # 2

#include<iostream>
using namespace std;

struct flightInfo
{
int Flight_ID;
int Fuel;
string Destination;
int schetime;
int actualtime;
int WaitingTime;
int Runway_ID;

};
const int Size = 100;
class PriorityQueue
{
private:
flightInfo FlightQueue[Size];
int tail;
int Front;
int Counter;
flightInfo EmergencyQ[Size];
int Etail;
int Efront;
int ECounter;

public:
PriorityQueue()
{
tail = 0;
Front = 0;
Counter = 0;
ECounter = 0;
Etail = 0;
Efront = 0;
}

bool isFull_FlightRecord()
{
if(Counter >= Size)
{
return true;
}
else
{
return false;
}
}

void ArrivalFlightRecord(flightInfo arrivals)


{
FlightQueue[Counter].Flight_ID = arrivals.Flight_ID;
FlightQueue[Counter].Fuel = arrivals.Fuel;
FlightQueue[Counter].Destination = arrivals.Destination;
FlightQueue[Counter].schetime = arrivals.schetime;
FlightQueue[Counter].actualtime = arrivals.actualtime;
FlightQueue[Counter].WaitingTime = arrivals.schetime-arrivals.actualtime;
FlightQueue[Counter].Runway_ID = arrivals.Runway_ID;
Counter++;
}
DeQueueFlighFacingEmergency(int FlightNumber)
{
for(int i=Front; i < Counter; i++)
{
if(FlightQueue[i].Flight_ID == FlightNumber)
{

EmergencyQ[ECounter].Flight_ID = FlightQueue[i].Flight_ID;
EmergencyQ[ECounter].Fuel = FlightQueue[i].Fuel;
EmergencyQ[ECounter].Destination = FlightQueue[i].Destination;
EmergencyQ[ECounter].schetime = FlightQueue[i].schetime;
EmergencyQ[ECounter].actualtime = FlightQueue[i].actualtime;
EmergencyQ[ECounter].WaitingTime =
FlightQueue[i].schetime-FlightQueue[i].actualtime;
EmergencyQ[ECounter].Runway_ID = FlightQueue[i].Runway_ID;
ECounter++;
for(int j=i; j<Counter; j++)
{
FlightQueue[j] = FlightQueue[j+1];
}
i--;
Counter--;
}
}
}
};
int main()
{
PriorityQueue pq;
flightInfo arrivals;
int choice=1,FNum;
while(choice != 0)
{
cout<<"\n\n\t\t1: Enter Record Of Flight";
cout<<"\n\n\t\t2: Emergency Flight";
cout<<"\n\n\t\tEnter Your Choice...";
cin>>choice;
switch(choice)
{
case 1:
if(pq.isFull_FlightRecord()==true)
{
cout<<"\n\tSorry!No more space is available in Arrival Record
File";
}
else
{
cout<<"Enter Flight_ID: ";
cin>>arrivals.Flight_ID;
cout<<"Enter Fuel: ";
cin>>arrivals.Fuel;
//FUALT TOLERENT SYSTEM
if(arrivals.Fuel<=0 || arrivals.Fuel >=100000)
{
cout<<"\n\n\t\t***Error!Invalid Fuel Amount***"<<endl;
continue;
}
cout<<"Enter destination: ";
cin>>arrivals.Destination;
cout<<"Enter Scheduled_Time: ";
cin>>arrivals.schetime;
cout<<"Enter Actual_Time: ";
cin>>arrivals.actualtime;
cout<<"Enter Runway_ID: ";
cin>>arrivals.Runway_ID;

pq.ArrivalFlightRecord(arrivals);

}
break;
case 2:
cout<<"\n\n\t\t\t\t***HURRY_UP****";
cout<<"\n\tPlease Enter Flight Number you want to Land in
Emergency: ";
cin>>FNum;
pq.DeQueueFlighFacingEmergency(FNum);
break;
}
}

QUESTION # 1

#include<iostream>
using namespace std;
struct node
{
int data;
node *next;
};
class LinkList
{

private:
node *head,*head2,*newNode,*temp;
public:
LinkList()
{
head = NULL;
head2 = NULL;
newNode = NULL;
temp = NULL;

void constructAnOrderedList (node *orderedList1, node *orderedList2);


{
int num1,num2;
cout<<"Create First node";
cout<<"Enter Number To Insert in Node 1";
node orderedList1 = new (Node);
orderedList1->data = num1;
orderedList1->next = NULL;

if(head == NULL)
{
head = temp = orderedList1;
}
cout<<"Create Second node";
cout<<"Enter Number To Insert in Node 2";
node orderedList2 = new (Node);
orderedList2->data = num2;
orderedList2->next = NULL;

if(head2 == NULL)
{
head = temp =orderedList2;
}
if(orderedList1->data > orderedList2->data)
{
orderedList1->next = orderedList2;
}
else if(orderedList2->data > orderedList1->data)
{
orderedList2->next = orderedList1;
}
}
};
int main()
{
LinkList ll;

ll.constructAnOrderedList (*orderedList1, *orderedList2);


}

You might also like