Queue Data Structure Implementation Using an Array

Write a program to implement a queue using an array.  In this tutorial, You are going to learn about Queue data structure and their implementation using an array in C, C++ & Java. In my previous posts, I have explained Stack and Linked List data structure.

Queue Data Structure

In Queue data structure, An element is inserted at one end called rear and deleted at other end called front. As compared to stack data structure in which insertion and deletion are allowed only at one end. Queue data structure is also called FIFO (First In First out).

Find Common Elements in Two Arrays – Intersection of two Arrays

Given two sorted arrays, Write a code to find common elements in two arrays. In other words, we have to write a code to find the intersection of two arrays.

Find Common Elements in Two Arrays

Let’s assume following two sorted arrays arr1[] and arr2[].

int arr1[] = {2,  3,  4,  5,  6};
int arr2[] = {4,  6,  7,  8,  9};

So the common elements in these two arrays is 4 and 6.

Find the Second Largest Number in an Unsorted Array

Write a Program to find the second largest number in an unsorted array. Given an array of unsorted values find the second largest number in an array.

For example – Let’s take an array.

arr[] = { 4, 1, 5, 2, 8, 0, 3, 55}

The second largest element in this array is 8.  So how do you find the second largest number in an array ?  There are multiple ways by which you can solve this problem.

Find Second Largest Number in an Array

Find Second Largest Number in an Array

First Approach : Sort an Array

The simple approach is  to sort an array using sorting algorithm. After sorting an array element at n-2 index will be the second largest element.

You can use following sorting algorithms.

i) Selection Sort

ii) Insertion Sort

iii) Bubble Sort

iv) Merge Sort

v)Quick Sort

Selection sort, insertion sort and bubble sort are not suitable for large data sets as their time complexity is O(n2) . You can use Merge Sort or Quick Sort for large data sets.

NOTE –  If  values of an array is  repeated then this approach won’t work. Then the best approach is to traverse an array to find the second largest element.

Second Approach : Traverse an array

The best approach is to traverse an array to find the second largest number in an array. Using this approach maintain two flags one for highest and other for the second highest number. The time complexity of this approach is O(n).