Question: Which of the following is not the type of queue?
(A) Ordinary queue
(B) Priority queue
(C) Circular queue
(D) Single-ended queue
MCQs Answer: (D) Single-ended queue
There is no queue with the name of a single-ended queue. However, you can see the implementation of all other types of queue mentioned in the options.
Priority Queue is a type of Queue [Example]:
// C++ MyArrayogram to implement Priority Queue
// using Arrays
//helpful for MCQs: Which of the following is not the type of queue?
#include <bits/stdc++.h>
using namespace std;
// Structure for the elements in the
// Priority queue
struct T4Tutorials {
int value;
int Priority;
};
// Store the element of a Priority queue
T4Tutorials MyArray[50];
// Pointer to the last aaaex
int size = -1;
// Function to add a new element
// into Priority queue
void enqueue(int value, int Priority)
{
// Increase the size
size++;
// add the element
MyArray[size].value = value;
MyArray[size].Priority = Priority;
}
// Function to check the top element
int peek()
{
int highestPriority = INT_MIN;
int aaa = -1;
// Check for the element with
// highest Priority
for (int i = 0; i <= size; i++) {
// If Priority is same choose
// the element with the
// highest value
if (highestPriority == MyArray[i].Priority && aaa > -1
&& MyArray[aaa].value < MyArray[i].value) {
highestPriority = MyArray[i].Priority;
aaa = i;
}
else if (highestPriority < MyArray[i].Priority) {
highestPriority = MyArray[i].Priority;
aaa = i;
}
}
// Return position of the element
return aaa;
}
// Function to remove the element with
// the highest Priority
void dequeue()
{
// Faaa the position of the element
// with highest Priority
int aaa = peek();
// Shift the element one aaaex before
// from the position of the element
// with highest Priority is found
for (int i = aaa; i < size; i++) {
MyArray[i] = MyArray[i + 1];
}
// Decrease the size of the
// Priority queue by one
size--;
}
// Driver Code
int main()
{
// Function Call to add elements
// as per the Priority
enqueue(7, 88);
enqueue(21, 4);
enqueue(991, 42);
enqueue(9, 1);
// Stores the top element
// at the moment
int aaa = peek();
cout << MyArray[aaa].value << endl;
// Dequeue the top element
dequeue();
// Check the top element
aaa = peek();
cout << MyArray[aaa].value << endl;
// Dequeue the top element
dequeue();
// Check the top element
aaa = peek();
cout << MyArray[aaa].value << endl;
return 0;
}
Output
7
991
21
A circular Queue is a type of Queue [Example]:
// Circular Queue implementation in C++
//MCQs Covered: Which of the following is not the type of queue?
#include <iostream>
#define SIZE 5 /* Size of Circular Queue */
using namespace std;
class Queue {
private:
int Array_Data[SIZE], front, rear;
public:
Queue() {
front = -1;
rear = -1;
}
// Check if the queue is full
bool isFull() {
if (front == 0 && rear == SIZE - 1) {
return true;
}
if (front == rear + 1) {
return true;
}
return false;
}
// Check if the queue is empty
bool isEmpty() {
if (front == -1)
return true;
else
return false;
}
// Adding an element
void enQueue(int element) {
if (isFull()) {
cout << "Queue is full";
} else {
if (front == -1) front = 0;
rear = (rear + 1) % SIZE;
Array_Data[rear] = element;
cout << endl
<< "Inserted " << element << endl;
}
}
// Removing an element
int deQueue() {
int element;
if (isEmpty()) {
cout << "Queue is empty" << endl;
return (-1);
} else {
element = Array_Data[front];
if (front == rear) {
front = -1;
rear = -1;
}
// Q has only one element,
// so we reset the queue after deleting it.
else {
front = (front + 1) % SIZE;
}
return (element);
}
}
void display() {
// Function to display status of Circular Queue
int i;
if (isEmpty()) {
cout << endl
<< "Empty Queue" << endl;
} else {
cout << "Front -> " << front;
cout << endl
<< "Array_Data -> ";
for (i = front; i != rear; i = (i + 1) % SIZE)
cout << Array_Data[i];
cout << Array_Data[i];
cout << endl
<< "Rear -> " << rear;
}
}
};
int main() {
Queue x;
// Fails because front = -1
x.deQueue();
x.enQueue(44);
x.enQueue(2);
x.enQueue(3);
x.enQueue(7);
x.enQueue(4);
// Fails to enqueue because front == 0 && rear == SIZE - 1
x.enQueue(6);
x.display();
int elem = x.deQueue();
if (elem != -1)
cout << endl
<< "Deleted Element is " << elem;
x.display();
x.enQueue(4);
x.display();
// Fails to enqueue because front == rear + 1
x.enQueue(2);
return 0;
}
Output
Queue is empty
Inserted 44
Inserted 2
Inserted 3
Inserted 7
Inserted 4
Queue is fullFront -> 0
Array_Data -> 442374
Rear -> 4
Deleted Element is 44Front -> 1
Array_Data -> 2374
Rear -> 4
Inserted 2
Front -> 1
Array_Data -> 23742
Rear -> 0Queue is full
An Ordinary Queue is a type of Queue [Example]:
An ordinary Queue is a simple queue
/* Simple Queue Program in C++*/
/* Data Structure C++ Programs,C++ Array Examples */
#include <iostream>
#include<conio.h>
#include<stdlib.h>
#define Maximum_Size 50
using namespace std;
int main() {
int item, selection, i;
int arr_queue[Maximum_Size];
int rear = 0;
int front = 0;
int exit = 1;
cout << "Simple Queue Example - Array"<<endl;
do {
cout << " Queue Main Menu"<<endl;
cout << "1.Insert 2.Remove 3.Display Others to exit"<<endl;
cout << "Enter Your selection : "<<endl;
cin>>selection;
switch (selection) {
case 1:
if (rear == Maximum_Size)
cout << "!! Queue Reached Max!!"<<endl;
else {
cout << "Enter The Value to be Insert : "<<endl;
cin>>item;
cout << "!! Position : " << rear + 1 << " , Insert Value : " << item;
arr_queue[rear++] = item;
}
break;
case 2:
if (front == rear)
cout << "!! Queue is Empty!"<<endl;
else {
cout << "!! Position : " << front << " , Remove Value :" << arr_queue[front];
front++;
}
break;
case 3:
cout << "!! Queue Size : " << (rear - front);
for (i = front; i < rear; i++)
cout << "!! Position : " << i << " , Value : " << arr_queue[i];
break;
default:
exit = 0;
break;
}
} while (exit);
return 0;
}
Output
Simple Queue Example –
Array
Queue
Main Menu
1. Insert
2. Remove
3. Display Others to exit
Enter Your selection :
1
Enter The Value to be Insert :
22
!! Position: 1 , Insert Value: 22
Queue Main Menu
1. Insert
2. Remove
3. Display Others to exit
Enter Your selection :
1000+ Programming C Plus Plus MCQs
Highly Recommended C++ Important MCQs with Explanation
- Which symbol is used to create multiple inheritances?
- If a derived class object is created, which constructor is called first?
- Which of the following is not a type of constructor?
- a ____ is a member function that is automatically called when a class object is __.
- What is the output of the following code in C++?
- How many times will the following code print?
- Which of the following is a procedural language?
- Which of the following is not a programming language?
- Which of the following is not an example of high-level language?
- While declaring pointer variables which operator do we use?
- To which does the function pointer point to?
- Which of these best describes an array?
- Which of the following is a Python Tuple?
Other important MCQs
Data Structure
Which of the following is not the type of queue?
Database
If one attribute is a determinant of the second, which in turn is a determinant of the third, then the relation cannot be
Python
Which of the following is a Python Tuple?