0% found this document useful (0 votes)
42 views12 pages

05A Various Array Operations

This document provides code listings and descriptions for various array operations, including: 1. Getting values to fill the array 2. Traversing (displaying) the array 3. Inserting values at the beginning, in between, and at the end of the array 4. Deleting values by position at the beginning, in between, and at the end, and deleting by value 5. Searching by value and position 6. Reversing and sorting the array 7. Calculating frequency of values The code includes functions for each operation with comments explaining the logic.

Uploaded by

darshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views12 pages

05A Various Array Operations

This document provides code listings and descriptions for various array operations, including: 1. Getting values to fill the array 2. Traversing (displaying) the array 3. Inserting values at the beginning, in between, and at the end of the array 4. Deleting values by position at the beginning, in between, and at the end, and deleting by value 5. Searching by value and position 6. Reversing and sorting the array 7. Calculating frequency of values The code includes functions for each operation with comments explaining the logic.

Uploaded by

darshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

PDPU, Gandhinagar 05 Array-Programs’s Listing

/* Various Array Operations.


Assumption:No data loss
variable index & array a will be available throughout the program.
------------------------------------------------
1. Getvalues. (Fill the whole array with values.)
2. Traverse (Display).
3. Insert -> at beginning.
-> in between.
-> at end.
4. Delete by Position.
-> from beginning position.
-> from in between position.
-> from last position.
5. Delete by Value.
6. Search -> By Value.
-> By Position.
7. Reverse the Array.
8. Sorting the Array.
9. Frequency of the values.
-----------------------------------------------
A -> Array.
LB -> Lower Boundary.
UB -> Upper Boundary.
-----------------------------------------------
index -> -1 // Index of the Array.
-----------------------------------------------
Getvalues(A,UB)
{
1 i = 0;index=-1;
2 Repeat Step No. 3 to 8 while ( i <= UB)
3 {
4 Accept Val
5 A[i] = val
6 i++
7 index++
8 }
}
-----------------------------------------------
traverse(A)
{
1 i = 0;
2 Repeat Step No. 3 to 7 Until ( i > index)
3 {
4 write A[i]
6 i++
7 }
}
------------------------------------------------
traverse2(A,LB,UB) // Display the content of array from a particular
// position to a Particular Position.
{
1 i = LB;
2 Repeat Step No. 3 to 7 Until ( i > UB)
3 {
4 write A[i]
6 i++
7 }
}
------------------------------------------------
Insertatbeginning(A,UB,val)
{
By Darshit Shah 1
PDPU, Gandhinagar 05 Array-Programs’s Listing

1 if ( index >= UB)


2 write "Can't Insert as Whole array is filled."
3 else
4 if ( index == -1) // Empty array.
5 {
6 index++
7 A[index] = val
8 }
9 else
10 {
11 // Array Partially filled and Partially empty.
12 // Shift all the elements to the right by 1 position.
13 i = index
14 Repeat step no. 15 to 18 Until ( i < 0)
15 {
16 A[i+1] = A[i]
17 i--
18 }
19 // Shifting completed... Now insert at the first position.
20 index++;
21 A[0] = val
}
------------------------------------------------
insertinbetween(A,UB,pos,val)
{
1 if (index == UB)
2 {
3 // Houseful
4 write "Can't Insert as Whole array is filled."
5 }
6 else
7 if (pos >= 0 and pos <= index )
8 {
9 // Allow value to be inserted.
10 i = index
11 Repeat step no. 12 to 15 Until ( i < pos)
12 {
13 A[i+1] = A[i]
14 i--
15 }
16 A[pos] = val
17 index++
18 }
19 else
20 write "Position is Out of range of values already there."
}
------------------------------------------------
insertatend(A,UB,val)
{
1 if (index == UB)
2 {
3 // Houseful
4 write "Can't Insert as Whole array is filled."
5 }
6 else
7 {
8 index++
9 A[index] = val
10 }
}
------------------------------------------------
By Darshit Shah 2
PDPU, Gandhinagar 05 Array-Programs’s Listing

// Delete by position --> from beginning.


deletefromstart(A)
{
1 if (index == -1)
2 write "Can't delete as Array is already empty."
3 else
4 {
5 tmp = A[0]
6 // shift all elements to left.
7 for(i=1;i<=index;i++)
8 A[i-1] = a[i]
9 write tmp," is deleted."
10 index-- // As we have deleted a[0] and shifted all elements to
11 // its left, we have to reduce index by 1.
12 }
}
-----------------------------------------------
// Delete by position --> from inbetween.
deletefrominbetweenpos(A,pos)
{
1 if (index == -1)
2 write "Can't delete as Array is already empty."
3 else
4 if (pos > index)
5 write "Can't find the position from where to delete a value."
6 else
7 if (pos < 0 )
8 write "Invalid Position."
9 else
10 {
11 tmp = A[pos]
12 i = pos+1
13 repeat step no. 14 to 15 while (i <= index)
14 a[i-1] = a[i]
15 i++
16 index--
17 write tmp, "is deleted"
18 }
}
-----------------------------------------------
// Delete by position --> from last
deletefromlast(A)
{
1 if (index == -1)
2 write "Can't delete as Array is already empty."
3 else
4 {
5 write A[index], "is deleted."
6 index--
7 }
}
// The people speak the word, the meaning is pole apart.
-------------------------------------------------
deletebyvalue(A,val) // for single value.
{
1 flag = 'n' // Assuming that the value is not found.
2 for (i = 0 ; i <= index ; i++)
3 {
4 if (A[i] == val)
5 {
6 // means value found.
By Darshit Shah 3
PDPU, Gandhinagar 05 Array-Programs’s Listing

7 flag = 'y'
8 for (j=i+1;j<= index ; j++)
9 {
10 A[j-1] = A[j]
11 }
12 index--
13 write val, " is deleted from position ", i
14 go to step no. 21
15 }
16 }
17 if (flag == 'n')
18 {
19 write val, "Not Found..."
20 }
21
}

// reverse the Array


reversearray(A)
{
1 i=0
2 j=index
3 Repeat step no.4 to 10 while(i<j)
4 {
5 tmp = a[i]
6 a[i] = a[j]
7 a[j] = tmp
8 i++
9 j--
10 }
}

*/

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 5 // maximum 10 for correct graphical presentation.
#define AND &&

int index = -1;


int a[MAX] = {0};
void traverse();
void displaybox();

void main()
{
int ch = 0;
int ub = MAX-1;
int val,pos;
void Getvalues(int);
void Insertatbeginning(int ,int );
void insertinbetween(int ,int ,int );
void insertatend(int ,int );
void deletebyvalue(int );
void deletefromstart(void);
void deletefrominbetweenpos(int);
void deletefromlast(void);
void searchval(int );
void searchpos(int ,int );
void reversearray(void);
By Darshit Shah 4
PDPU, Gandhinagar 05 Array-Programs’s Listing

void sortarray(void);
void freq(void);
while (1)
{
clrscr();
printf("Main Menu\n");
printf("1. Get Value (Fill the whole array)\n");
printf("2. Traverse (Display).\n");
printf("3. Insert -> at beginning.\n");
printf("4. Insert -> in between.\n");
printf("5. Insert -> at end.\n");
printf("6. Delete by Position.\n");
printf(" 7. Delete value from 1st position.\n");
printf(" 8. Delete value from a particular position.\n");
printf(" 9. Delete value from last position.\n");
printf("10.Delete by Value.\n");
printf("11.Search -> By Value.\n");
printf("12.Search -> By Position.\n");
printf("13.Reverse the Array.\n");
printf("14.Sorting the Array.\n");
printf("15.Frequency of the values.\n");
printf("16.Exit\n");
displaybox();
do
{
gotoxy(1,18);
printf("Enter your choice [1...16] ");
scanf("%d",&ch);
} while (ch > 16 || ch < 1);
switch(ch)
{
case 1: Getvalues(ub);
break;
case 2: traverse();
break;
case 3: printf("Enter the value to be inserted. ");
scanf("%d",&val);
Insertatbeginning(ub,val);
break;
case 4: printf("Enter the value to be inserted. ");
scanf("%d",&val);
printf("Enter the position: ");
scanf("%d",&pos);
insertinbetween(ub,pos,val);
break;
case 5: printf("Enter the value to be inserted. ");
scanf("%d",&val);
insertatend(ub,val);
break;
case 7: deletefromstart();
break;
case 8: printf("Enter the position: ");
scanf("%d",&pos);
deletefrominbetweenpos(pos);
break;
case 9: deletefromlast();
break;
case 10:printf("Enter the value to be deleted. ");
scanf("%d",&val);
deletebyvalue(val);
break;
By Darshit Shah 5
PDPU, Gandhinagar 05 Array-Programs’s Listing

case 11:printf("Enter the value to be searched. ");


scanf("%d",&val);
searchval(val);
break;
case 12:printf("Enter the position: ");
scanf("%d",&pos);
searchpos(pos,ub);
break;
case 13: reversearray();
break;
case 14:sortarray();
break;
case 15: freq();
break;
case 16: exit(0);
}
}
};

void Getvalues(int UB)


{
// int i = 0,val;
index = -1;
printf("Getvalues::Please enter %d values one by one.\n",MAX);
while (index < UB)
{
index++;
gotoxy(1,index+20);
printf("Enter a Number a[%d]: ",index);
scanf("%d",&a[index]);
// a[i] = val;
// i++;
displaybox();
}
gotoxy(1,index+21);
printf("Value of index = %d\n",index);
getch();
// traverse();
}

void traverse()
{
int i = 0;
if (index == -1 )
{
gotoxy(50,23);
printf("traverse::Empty Array.\n");
}
else
{
printf("traverse::The values of the Array are : ");
while (i <= index)
{
printf("%d ",a[i]);
i++;
}
printf("\nValue of index = %d\n",index);
}
getch();
}

By Darshit Shah 6
PDPU, Gandhinagar 05 Array-Programs’s Listing

void Insertatbeginning(int UB,int val)


{
int i;
if ( index >= UB)
printf("Insertatbeginning::Can't Insert as Whole array is filled.");
else
if ( index == -1) // Empty array.
{
index++;
a[index] = val;
printf("Insertatbeginning::%d is placed at a[0] ",val);
}
else
{
// Array Partially filled and Partially empty.
// Shift all the elements to the right by 1 position.
i = index;
while ( i >= 0)
{
a[i+1] = a[i];
i--;
}
// Shifting completed... Now insert at the first position.
a[0] = val;
index++;
printf("Insertatbeginning::%d is placed at a[0] ",val);
}
printf("\nInsertatbeginning::Value of index = %d\n",index);
// traverse();
displaybox();
getch();
}

void insertinbetween(int UB,int pos,int val)


{
int i;
if (index == UB)
{
// Houseful
printf("inserinbetween::Can't Insert as Whole array is filled.\n");
}
else
if (pos >= 0 AND pos <= index )
{
// Allow value to be inserted.
i = index;
while ( i >= pos)
{
a[i+1] = a[i];
i--;
};
a[pos] = val;
printf("insertinbetween::%d is placed at a[%d]\n",val,pos);
index++;
}
else
printf("insertinbetween::Position is Out of range of values already
there.\n");
// traverse();
displaybox();
getch();
By Darshit Shah 7
PDPU, Gandhinagar 05 Array-Programs’s Listing

void insertatend(int UB,int val)


{
if (index == UB)
{
// Houseful
printf("insertatend::Can't Insert as Whole array is filled.\n");
}
else
{
index++;
a[index] = val;
printf("insertatend::%d is placed at a[%d]\n",val,index);
}
// traverse();
displaybox();
getch();
}

// Delete by position --> from beginning.


void deletefromstart()
{
if (index == -1)
printf("deletefromstart::Can't delete as Array is already empty.\n");
else
{
int i;
int tmp = a[0];
// shift all elements to left.
for(i=1;i<=index;i++)
a[i-1] = a[i];
printf("deletefromstart::%d is deleted.\n",tmp);
index--; // As we have deleted a[0] and shifted all elements to
// its left, we have to reduce index by 1.
}
// traverse();
displaybox();
getch();
}

void deletebyvalue(int val) // for all values.


{
char flag = 'n'; // Assuming that the value is not found.
int i,j;
traverse();
for (i = 0 ; i <= index ; i++)
{
if (a[i] == val)
{
// means value found.
flag = 'y';
for (j=i+1;j<= index ; j++)
a[j-1] = a[j];
gotoxy(1,22);
printf("%d is deleted from a[%d] position\n", val,i);
index--;
i--;
displaybox();
getch();
// break;
By Darshit Shah 8
PDPU, Gandhinagar 05 Array-Programs’s Listing

}
}
gotoxy(1,22);
if (flag == 'n')
printf ("%d Not Found...\n",val);
traverse();
}

void deletefrominbetweenpos(int pos)


{
if (index == -1)
printf("Can't delete as Array is already empty.\n");
else
if (pos > index)
printf("Can't find the position from where to delete a value.\n");
else
if (pos < 0 )
printf("Invalid Position.\n");
else
{
int tmp = a[pos];
int i = pos+1;
while (i <= index)
{
a[i-1] = a[i];
i++;
}
index--;
printf("%d is deleted.",tmp);
displaybox();
}
getch();
}

// Delete by position --> from last


void deletefromlast()
{
if (index == -1)
printf("Can't delete as Array is already empty.\n");
else
{
printf("%d is deleted.\n",a[index]);
index--;
}
// traverse();
displaybox();
getch();
}
// The people speak the word, the meaning is pole apart.

void searchval(int val)


{
int i;
char flag = 'n';
for(i=0;i<=index;i++)
{
if (a[i] == val) // value found.
{
flag = 'y';
printf("%d is found at a[%d].\n",val,i);
By Darshit Shah 9
PDPU, Gandhinagar 05 Array-Programs’s Listing

}
}
if (flag == 'n')
printf("%d is not found.\n",val);
getch();
}

void searchpos(int pos,int ub)


{
if (pos < 0 || pos > ub)
printf("Invalid Position.\n");
else
if (pos > index)
printf("Array is not filled till this position.\n");
else
printf("%d is found at a[%d].\n",a[pos],pos);
getch();
}

void reversearray()
{
int i=0,j=index,tmp;
while(i<j)
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
displaybox();
getch();
gotoxy(1,20);
}
}

void sortarray()
{
int i,j,tmp;
printf("Before Sorting::");
traverse();
for(i=0;i<=index-1;i++)
{
for (j=i+1;j<=index;j++)
{
if (a[i] > a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
displaybox();
getch();
}
}
}
gotoxy(1,21);
printf("After Sorting::");
traverse();
}

void freq()
{
By Darshit Shah 10
PDPU, Gandhinagar 05 Array-Programs’s Listing

int b[MAX]={0},bfreq[MAX]={0},bindex=-1,i,j;
char valfound;
for(i=0;i<=index;i++)
{
valfound = 'n'; // Assumed that value not found in array b.
// so now try to find it in array b.
for(j=0;j<=bindex;j++)
{
if (a[i] == b[j])
{
// means found in array b. so add 1 to its frequency.
bfreq[j] = bfreq[j] + 1;
valfound = 'y'; // reverse your assumption.
break;
}
}
if (valfound == 'n') // means value still not found. So add in b[].
{
bindex++;
b[bindex] = a[i];
bfreq[bindex] = 1;
}
}
// frequency of each value counted ... now print them one by one.
printf("Value\tFrequency\n");
for (j= 0; j<= bindex ; j++)
{
printf("%d\t%d\n",b[j],bfreq[j]);
}
getch();
}

void displaybox()
{
int r= 3 , c = 60,i;
// print value of index.
gotoxy(c+10,r-1);
printf("index");
gotoxy(c+10,r);
printf("%c",201);
printf("%c%c%c%c%c%c",205,205,205,205,205,205);
printf("%c",187);
gotoxy(c+10,r+1);
printf("%c",186);
printf("%6d%c",index,186);
gotoxy(c+10,r+2);
printf("%c",200);
printf("%c%c%c%c%c%c",205,205,205,205,205,205);
printf("%c",188);

// now display array.


gotoxy(c+3,r-1);
printf("A");
// print 1st line.
gotoxy(c,r);
printf("%c",201);
printf("%c%c%c%c%c%c",205,205,205,205,205,205);
printf("%c",187);
// print MAX-1 lines.
for(i = 0;i < MAX-1 ; i++)
By Darshit Shah 11
PDPU, Gandhinagar 05 Array-Programs’s Listing

{
r++;
gotoxy(c-2,r);
printf("%2d%c",i,186);
if ( i <= index)
printf("%6d%c",a[i],186);
else
printf(" %c",186);
r++;
gotoxy(c,r);
printf("%c",204);
printf("%c%c%c%c%c%c",205,205,205,205,205,205);
printf("%c",185);
};
// print last line.
r++;
gotoxy(c-2,r);
printf("%2d%c",i,186);
if ( i <= index)
printf("%6d%c",a[i],186);
else
printf(" %c",186);
r++;
gotoxy(c,r);
printf("%c",200);
printf("%c%c%c%c%c%c",205,205,205,205,205,205);
printf("%c",188);
// getch();

By Darshit Shah 12

You might also like