You are on page 1of 22

Program1: Add an element into Array

index  0 1 2 3 4 5 6 7 9
2 7 8 4 6

pos


right shift
#include<stdio.h>
#include<conio.h> 0 1 2 3 4 5
void main( ) 2 7 39 8 4 6
{
int a[10], i , n, pos, ele ;
clrscr( ); new element (ele)
printf (" enter how many elements ");
scanf (" %d", &n);
printf ("enter the elements of array \n");
for ( i = 0 ; i < n ; i++)
position
scanf ("%d", &a[ i ] );
printf ("\n enter new-element to insert and its position \n" );
scanf (" %d %d ", &ele , &pos); Here, ele is 39 and pos is 3
for ( i = n−1 ; i >= pos−1; i−− )
right shift
a [ i+1] = a[ i ] ;

a [ pos −1] = ele ; position is 3  index will be 2. That’s why pos−1 is written
So, ele is stored at the index 2 of array
printf ( " \n elements of array are \n" );
for ( i = 0 ; i < n+1 ; i++)
printf ( " %d \n", a [ i ] );
getch ( );
}
Output
enter how many elements 5
enter the elements of array
2
7
8
4
6
enter element to insert and its position
39 3
elements of array are
2
7
39
8
4
6
1
Program2: Delete an element from Array
#include<stdio.h> Index  0 1 2 3 4
#include<conio.h>
void main( ) 2 7 8 4 6

{
int a [10], i, n, pos, ele ; pos

clrscr ( );
left shift
printf ("enter how many elements ");
scanf ("%d", &n); 
printf (" enter the elements of array \n"); 2 7 4 6
for ( i = 0 ; i<n ; i++)
scanf (" %d", &a[ i ] );
printf ("\n enter position of element to delete \n " );
scanf ( " %d ", &pos); Here, pos is 3  index is 2
for ( i = pos ; i < n ; i++)
left shift
a [ i−1] = a [ i ];

printf ("\n elements of array are \n");


for ( i = 0 ; i < n−1 ; i++)
printf ( " %d \n", a[ i ] );
getch( );
}
Output
enter how many elements 5
enter the elements of array
2
7
8
4
6
enter position of element to delete
3
elements of array are
2
7
4
6

2
Program3: Linear Search
#include<stdio.h> Example:
0 1 2 3 4 5 6
#include<conio.h>
12 13 17 19 25 28 35
void main()
{
int a[10] , n, i , ele , f = 0;
clrscr ( ); 25
printf ( "enter how many elements " );
ele
scanf (" %d", &n);
printf ( "enter the elements of array " );
for ( i = 0 ; i < n ; i++)
scanf (" %d", &a[ i ] );
printf (" enter the element to search " );
scanf (" %d", &ele );
for ( i = 0 ; i < n ; i++)
{
if ( ele == a [ i ] )
{
printf (" element found ");
f = 1;
}
}
if ( f == 0 )
printf ( " element not found " );
getch( );
}

Output
enter how many elements 7
enter the elements of array 12 13 17 19 25 28 35

enter the element to search 25

element found

3
Example:
Program4: Binary Search 0 1 2 3 4 5 6
#include<stdio.h> 12 13 17 19 25 28 35
#include<conio.h>
void main( ) low mid high

{ ele is a variable which store the searching element.


Let, ele = 25
int a [10] , n, i , ele , low, mid, high, f = 0;
clrscr ( ); Low = 0
printf ("enter how many elements "); high = 6
low  high 0  6
scanf (" %d", &n); mid   3
2 2
printf("enter elements of array \n");
 a[mid]= a[3] = 19
for ( i = 0; i <n ; i++)
scanf (" %d ", &a[ i ] );
Now, ele > a[mid] ( 25 > 19 )
printf (" enter element to search ") ; Go to right side
scanf (" %d", &ele ); low = mid+1= 3+1= 4
low = 0; high = 6
low  high 4  6
high = n−1; mid   5
2 2
while ( low<=high )  a[mid]= a[5] = 28
{ 4 5 6

mid = ( low + high ) / 2; 25 28 35

if ( ele < a [ mid ] )


low mid high
Go to left side high = mid−1; Now, ele < a[mid] ( 25 < 28 )

Go to right side
else if ( ele > a [ mid ] )
low = 4 Go to left side
low = mid+1; high = mid-1 = 5−1= 4
low  high 4  4
else //( ele == a [ mid ] ) mid   4
2 2
{  a[mid] = a[4] = 25
printf ( " element found " ); Now, ele == a[mid]
f = 1;
 element is found
break;
4
}
25
}
if ( f ==0 )
low mid high
printf (" element not found ");
getch( );
}

4
Program5: Stack

#include<stdio.h>
#include<conio.h>
#define max 5
int stack [ max ];
int top = −1;
int choice;
void main( )
{
void push( );
void pop( );
void display( );
clrscr( );
printf (" 1. push \n");
printf (" 2. pop \n");
printf (" 3. display \n");
printf (" 4. exit \n");
while ( 1 )
{
printf (" enter choice : " ) ;
scanf (" %d ", &choice ) ;
switch ( choice )
{
case 1 : push( ); break;
case 2 : pop( ); break;
case 3 : display( ); break;
case 4 : exit(1); break;
default : printf ("invalid choice \n"); break;
}
}
}

5
void push( )
{
if ( top == max −1)
{
printf ( " overflow \n" );
}
else
{
top++;
printf ( "push an element : " );
scanf ( " %d ", &stack [top] );
}
}

void pop( )
{
if ( top == −1)
{
printf (" underflow \n" );
}
else
{
printf ( " %d is poped \n", stack [ top ] );
top−−;
}
}

void display( )
{
int i ;
if ( top == −1)
{
printf ("stack is empty \n" );
}
else
{
printf (" elements of stack are \n" );
for ( i = top ; i >= 0 ; i−−)
printf ( " %d \n", stack [ i ] );
}
}

6
Output
1. push
2. pop
3. display
4. exit
enter choice :1
push an element :10
enter choice :1
push an element :20
enter choice :1
push an element :30
enter choice :1
push an element :40
enter choice :3
elements of stack are
40
30
20
10
enter choice :2
40 is poped
enter choice :2
30 is poped
enter choice :3
elements of stack are
20
10
enter choice :1
push an element :50
enter choice :1
push an element :60
enter choice :1
push an element :70
enter choice :1
overflow
7
enter choice :3
elements of stack are
70
60
50
20
10
enter choice :4

8
Program6: Queue

#include<stdio.h>
#include<conio.h>
#define max 5
int queue [ max ];
int front = −1, rear = −1;
int choice;
void main( )
{
void insert( );
void delet( );
void display( );
clrscr( );
printf (" 1. insert \n");
printf (" 2. delete \n");
printf (" 3. display \n");
printf (" 4. exit \n");
while(1)
{
printf ("enter choice :");
scanf ( " %d", &choice);
switch (choice)
{
case 1: insert ( ); break;
case 2: delet ( ); break;
case 3: display ( ); break;
case 4: exit (1); break;
default: printf ( " invalid choice \n"); break;
}
}
}

9
void insert ( )
{
if ( rear == max −1)
{
printf ( " overflow \n");
return ;
}
else if ( rear == −1)
{
front ++;
rear ++;
}
else
{
rear ++;
}
printf ( " insert an element : " );
scanf ( " %d", &queue [ rear ] );
}

void delet ( )
{
if ( front == −1)
{
printf ( " underflow \n");
return ;
}
else if ( front == rear )
{
front = −1;
rear = −1;
}
else
{
front++;
}
printf ( " element is deleted \n " );
}

10
void display( )
{
int i ;
if ( front == −1)
{
printf ( " queue is empty \n");
}
else
{
printf ( " \n----- elements of queue are ----- ");
for ( i = front ; i<=rear ; i++)
printf ( " %d \t ", queue [ i ] );
}
printf("\n");
}

Output
1. insert
2. delete
3. display
4. exit
enter choice : 1
insert an element : 10
enter choice : 1
insert an element : 20
enter choice : 1
insert an element : 30
enter choice : 1
insert an element : 40
enter choice : 3

-----elements of queue are----- 10 20 30 40

enter choice : 2
element is deleted
enter choice : 2
element is deleted

11
enter choice : 3

-----elements of queue are----- 30 40

enter choice : 1
insert an element :50
enter choice : 1
overflow
enter choice : 3

----- elements of queue are ----- 30 40 50

enter choice : 4

12
Program7: Circular queue

#include<stdio.h>
#include<conio.h>
All green color lines indicates, these lines
#define max 5
are same as in the program for queue
int queue [ max ];
int front = −1, rear = −1;
int choice;
void main( )
{
void insert( );
void delet( );
void display( );
clrscr ( );
printf (" 1.insert \n");
printf (" 2.delete \n");
printf (" 3.display \n");
printf (" 4.exit \n");
while ( 1 )
{
printf (" enter choice :" );
scanf ( " %d", &choice );
switch ( choice )
{
case 1: insert ( ); break ;
case 2: delet ( ); break ;
case 3: display ( ); break ;
case 4: exit (1); break ;
default: printf ( "invalid choice \n " ); break ;
}
}
}

13
void insert( )
{
if ( front==0 && rear == max–1 || front == rear+1 )
{
printf ("overflow \n");
return;
}
else if ( rear == –1 ) All red color lines indicates, these lines are
{ to be written only for the circular queue

front++;
rear++;
}
else if ( rear == max −1 )
{
rear = 0;
}
else
{
rear++;
}
printf ( " insert an element : " );
scanf ( "%d", & queue [ rear ] );
}

void delet( )
{
if ( front == −1 )
{
printf ( " underflow \n");
return;
}
else if ( front == rear)
{
front = −1;
rear = −1;
}

14
else if ( front == max −1)
{
front = 0;
}
else
{
front++;
}
printf ( " element is deleted \n");
}

void display( )
{
int i;
if ( front == −1)
{
printf ( " queue is empty \n " );
}
else if ( front > rear )
{
printf ( " \n----- elements of queue are ----- " );
for ( i = front ; i <=max −1; i++)
printf ("%d \t", queue [ i ] );
for ( i = 0 ; i <= rear ; i++)
printf ("%d \t ", queue [ i ] );
}
else // front <= rear )
{
printf ( " \n----- elements of queue are ----- " );
for ( i = front ; i <= rear ; i++)
printf ( "%d \t", queue [ i ] );
}
printf ("\n");
}

15
Output
1. insert
2. delete
3. display
4. exit
enter choice : 1
insert an element : 10
enter choice : 1
insert an element : 20
enter choice : 1
insert an element : 30
enter choice : 1
insert an element : 40
enter choice : 3

-----elements of queue are----- 10 20 30 40


enter choice : 2
element is deleted
enter choice : 2
element is deleted
enter choice : 3

-----elements of queue are----- 30 40


enter choice : 1
insert an element : 50
enter choice : 1
insert an element : 60
enter choice : 1
insert an element : 70
enter choice : 3

-----elements of queue are----- 30 40 50 60 70


enter choice : 1
overflow
enter choice : 4

16
Program8: Program for Single linklist
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
struct node
{
int data;
struct node *next; The lines present in box
struct node *back; are to be written only for the
program of double linklist
};
struct node *start = NULL;

void create()
{
int n , i = 1;
struct node *newnode,*previousnode;
printf ("enter how many nodes :");
scanf (" %d ", &n);
while ( i <= n )
{
newnode = (struct node *) malloc(sizeof(struct node));

if ( start == NULL)
{
start = newnode;
newnodeback = NULL;
}
else
{
previousnodenext = newnode;
newnodeback = previousnode;
}
printf ( " enter data :");
scanf ( " %d " ,&newnode->data);
newnodenext = NULL;
17
previousnode = newnode;
i++;
}
}

void insertatbegin( )
{
struct node *newnode ,*beginingnode;
newnode = (struct node *) malloc(sizeof(struct node) );
printf ("enter data :");
scanf ( "%d", &newnode->data);
beginingnode = start;
newnodenext = beginingnode;
start = newnode;
newnodeback = NULL;
beginingnodeback = newnode;
}

void insertatend( )
{
struct node *newnode , *endnode;
newnode = (struct node *) malloc(sizeof(struct node));
printf ("enter data :");
scanf ("%d",&newnode->data);
endnode = start;
while (endnodenext !=NULL)
{
endnode = endnodenext;
}
endnodenext = newnode;
newnodenext = NULL;
newnodeback = endnode;
}
void insertatposition( )
{
18
struct node *newnode , *previousnode;
int pos , i =1;
printf ( " enter position :");
scanf ( "%d", &pos);
if ( pos==1) insertatbegin( );
else
{
newnode = (struct node *) malloc(sizeof(struct node));
printf ( "enter data :");
scanf ( "%d", &newnodedata);
previousnode = start;
while ( i < pos–1 )
{
previousnode = previousnodenext;
i++;
}
newnodenext = previousnodenext;
previousnodenext = newnode;
newnodeback = previousnode;
newnodenextback = newnode;
}
}

void deletatbegin( )
{
struct node *beginingnode;
beginingnode = start;
start = beginingnodenext;
free ( beginingnode);
startback = NULL;
}

19
void deletatend( )
{
struct node *endnode , *previousnode;
endnode = start;
do
{
previousnode = endnode;
endnode = endnodenext;
} while ( endnodenext != NULL);
previousnodenext = NULL;
free(endnode);
}

void deletatposition( )
{
struct node *currentnode , *previousnode;
int i =1, pos;
printf ( "enter position :");
scanf ( " %d", &pos);
if ( pos == 1) deletatbegin( );
else
{
currentnode = start;
do
{
previousnode = currentnode;
currentnode = currentnodenext;
i++;
} while ( i < pos );
previousnodenext = currentnodenext;
currentnodenextback = previousnode;
free ( currentnode ) ;
}
}

20
void display( )
{
struct node *currentnode;
currentnode = start;
if ( currentnode == NULL) printf("linklist is empty ");
else
{
do
{
printf ( "%d \t" , currentnodedata);
currentnode = currentnodenext;
} while ( currentnode != NULL);
}
printf ( "\n");
}

void main( )
{
int choice;
printf (" 1. create \n");
printf (" 2. display \n");
printf (" 3. insert at begin \n");
printf (" 4. insert at end \n");
printf (" 5. insert at position \n");
printf (" 6. delete at begin \n");
printf (" 7. delete at end \n");
printf(" 8. delete at position \n");
printf (" 9. exit \n");
while (1)
{
printf ( "enter choice :");
scanf ( "%d",&choice);
switch ( choice)
{
case 1: create(); break;

21
case 2: display( ); break;
case 3: insertatbegin( ); break;
case 4: insertatend( ); break;
case 5: insertatposition( ); break;
case 6: deletatbegin( ); break;
case 7: deletatend( ); break;
case 8: deletatposition( ); break;
case 9: exit(1); break;
default: printf("invalid choice \n"); break;
}
}
}
-------------------------------------End of program---------------------------------------------

22

You might also like