Join Our Email Alerts-Subscribe
Important Note:Login & Check Your Email Inbox and Activate Confirmation Link



Enter Your Email :

DataStructure-Program that implements deque using an array.

#include <stdio.h>
#include <conio.h>
#define MAX 10
void addqatbeg ( int *, int, int *, int * ) ;
void addqatend ( int *, int, int *, int * ) ;
int delqatbeg ( int *, int *, int * ) ;
int delqatend ( int *, int *, int * ) ;
void display ( int * ) ;
int count ( int * ) ;
void main( )
{
int arr[MAX] ;
int front, rear, i, n ;
clrscr( ) ;
/* initialises data members */
front = rear = -1 ;
for ( i = 0 ; i < MAX ; i++ )
arr[i] = 0 ;
addqatend ( arr, 17, &front, &rear ) ;
addqatbeg ( arr, 10, &front, &rear ) ;
addqatend ( arr, 8, &front, &rear ) ;
addqatbeg ( arr, -9, &front, &rear ) ;
addqatend ( arr, 13, &front, &rear ) ;
addqatbeg ( arr, 28, &front, &rear ) ;
addqatend ( arr, 14, &front, &rear ) ;
addqatbeg ( arr, 5, &front, &rear ) ;
addqatend ( arr, 25, &front, &rear ) ;
addqatbeg ( arr, 6, &front, &rear ) ;
addqatend ( arr, 21, &front, &rear ) ;
addqatbeg ( arr, 11, &front, &rear ) ;
printf ( "\nElements in a deque: " ) ;
display ( arr ) ;
n = count ( arr ) ;
printf ( "\nTotal number of elements in deque: %d", n ) ;
i = delqatbeg ( arr, &front, &rear ) ;
printf ( "\nItem extracted: %d", i ) ;
i = delqatbeg ( arr, &front, &rear ) ;
printf ( "\nItem extracted:%d", i ) ;
i = delqatbeg ( arr, &front, &rear ) ;
printf ( "\nItem extracted:%d", i ) ;
i = delqatbeg ( arr, &front, &rear ) ;
printf ( "\nItem extracted: %d", i ) ;
printf ( "\nElements in a deque after deletion: " ) ;
display ( arr ) ;
addqatend ( arr, 16, &front, &rear ) ;
addqatend ( arr, 7, &front, &rear ) ;
printf ( "\nElements in a deque after addition: " ) ;
display ( arr ) ;
i = delqatend ( arr, &front, &rear ) ;
printf ( "\nItem extracted: %d", i ) ;
i = delqatend ( arr, &front, &rear ) ;
printf ( "\nItem extracted: %d", i ) ;
printf ( "\nElements in a deque after deletion: " ) ;
display ( arr ) ;
n = count ( arr ) ;
printf ( "\nTotal number of elements in deque: %d", n ) ;
getch( ) ;
}
/* adds an element at the beginning of a deque */
void addqatbeg ( int *arr, int item, int *pfront, int *prear )
{
int i, k, c ;
if ( *pfront == 0 && *prear == MAX - 1 )
{
printf ( "\nDeque is full.\n" ) ;
return ;
}
if ( *pfront == -1 )
{
*pfront = *prear = 0 ;
arr[*pfront] = item ;
return ;
}
if ( *prear != MAX - 1 )
{
c = count ( arr ) ;
k = *prear + 1 ;
for ( i = 1 ; i <= c ; i++ )
{
arr[k] = arr[k - 1] ;
k-- ;
}
arr[k] = item ;
*pfront = k ;
( *prear )++ ;
}
else
{
( *pfront )-- ;
arr[*pfront] = item ;
}
}
/* adds an element at the end of a deque */
void addqatend ( int *arr, int item, int *pfront, int *prear )
{
int i, k ;
if ( *pfront == 0 && *prear == MAX - 1 )
{
printf ( "\nDeque is full.\n" ) ;
return ;
}
if ( *pfront == -1 )
{
*prear = *pfront = 0 ;
arr[*prear] = item ;
return ;
}
if ( *prear == MAX - 1 )
{
k = *pfront - 1 ;
for ( i = *pfront - 1 ; i < *prear ; i++ )
{
k = i ;
if ( k == MAX - 1 )
arr[k] = 0 ;
else
arr[k] = arr[i + 1] ;
}
( *prear )-- ;
( *pfront )-- ;
}
( *prear )++ ;
arr[*prear] = item ;
}
/* removes an element from the *pfront end of deque */
int delqatbeg ( int *arr, int *pfront, int *prear )
{
int item ;
if ( *pfront == -1 )
{
printf ( "\nDeque is empty.\n" ) ;
return 0 ;
}
item = arr[*pfront] ;
arr[*pfront] = 0 ;
if ( *pfront == *prear )
*pfront = *prear = -1 ;
else
( *pfront )++ ;
return item ;
}
/* removes an element from the *prear end of the deque */
int delqatend ( int *arr, int *pfront, int *prear )
{
int item ;
if ( *pfront == -1 )
{
printf ( "\nDeque is empty.\n" ) ;
return 0 ;
}
item = arr[*prear] ;
arr[*prear] = 0 ;
( *prear )-- ;
if ( *prear == -1 )
*pfront = -1 ;
return item ;
}
/* displays elements of a deque */
void display ( int *arr )
{
int i ;
printf ( "\n front->" ) ;
for ( i = 0 ; i < MAX ; i++ )
printf ( "\t%d", arr[i] ) ;
printf ( " <-rear" ) ;
}
/* counts the total number of elements in deque */
int count ( int *arr )
{
int c = 0, i ;
for ( i = 0 ; i < MAX ; i++ )
{
if ( arr[i] != 0 )
c++ ;
}
return c ;
}

 


Programming & Lab Manuals- ebooks & Codes PDF






Programming & Lab Manuals

Free Download

Python Programming

R Programming

Ruby Programming

Rust Programming

Scala Programming

Swift Programming

Data Structure

DBMS

JAVA

Computer Graphics

C++ Programming

Middle Ware Programming

Algorithm

C Aptitude Questions & Answers

C Programming

ASP.NET

Assembly Programming

C#

CSS

Elixir Programming

HTML

Java Script

Perl

PHP

Operating System

Web Programming

Microprocessor Manual

Survey Lab Manual

Computer Aided Building Lab Manual

Strength of Materials Lab Manual

Hydraulic/Fluid Mechanics Lab Manual

Soil Mechanics Lab Manual

Environmental Engineering Lab Manual

Concrete and Highway Manual

Computer Aided Design Manual

Manufacturing Lab Manual

Fluid Mechanics Lab Manual

Electrical Engineering Lab Manual

Thermal Engineering Lab Manual

Strength of Materials Lab Manual

Dynamics Lab Manual

Metrology Lab Manual

C.A.D. / C.A.M Manual

Design and Fabrication Project

Simulation and Analysis Lab Manual

Mechatronics Lab Manual

Analog and digital circuits Lab Manual

OOPS Lab Manual

Control System Lab Manual

Circuit & Simulation Lab Manual

Linear Integrated Circuit Lab Manual

Digital Signal Processing Manual

Communication System Lab Manual

Microprocessor & Microcontroller Manual

Computer Networks Lab Manual

VLSI Design Lab Manual

Embedded Lab Manual

Optical and Microwave Manual

Electronics Lab Manual

Linear and Digital Circuits Lab Manual

Electrical Machines Lab Manual

Control & Instrumentation Manual

Power Electronics & Drives Manual

Microcontrollers Lab Manual

Power System Lab Manual

Data Structures & C Manual

DBMS Lab Manual

Operating Systems Laboratory Manual

Software Engineering Lab Manual

Case Tools Laboratory Manual

Internet Programming Manual

Computer Graphics Lab Manual

Mobile Apps Lab Manual

Compiler Lab Manual

NETWORK SECURITY Manual

GRID & CLOUD COMPUTING Manual

DATA MINING Manual

Automotive (EE) Lab Manual

Automotive Fuels Lab Manual

Engine Emission Manual

Java Programming Manual

SOFTWARE TESTING Manual

Physics & Chemistry Manual

ELECTRIC CIRCUITS Manual

C PROGRAMMING Manual

Aircraft Structures Manual

Aerodynamics Lab Manual

Propulsion Lab Manual

Aero Engine Manual

Aircraft Design Project

Computer Aided Simulation Manual

Aircraft Systems Laboratory Manual

Flight Integration Lab Manual

Heat Transfer Lab Manual