Array, Structure and Pointers in C - for DSA
Array, Structure and Pointers in C - for DSA
Array is a container which can hold a fix number of items and these items should be of the same type. Most of
the data structures make use of arrays to implement their algorithms. Following are the important terms to
understand the concept of Array.
• Element − Each item stored in an array is called an element.
• Index − Each location of an element in an array has a numerical index, which is used to identify the
element.
Array Representation
Arrays can be declared in various ways in different languages. For illustration, let's take C array declaration.
Arrays can be declared in various ways in different languages. For illustration, let's take C array declaration.
As per the above illustration, following are the important points to be considered.
• Index starts with 0.
• Array length is 10 which mean it can store 10 elements.
• Each element can be accessed via its index. For example, we can fetch an element at index 6 as 27.
Basic Operations
Following are the basic operations supported by an array.
• Traverse − print all the array elements one by one.
• Insertion − Adds an element at the given index.
• Deletion − Deletes an element at the given index.
• Search − Searches an element using the given index or by the value.
• Update − Updates an element at the given index.
Traverse Operation
This operation is to traverse through the elements of an array.
Example
Following program traverses and prints the elements of an array:
#include <stdio.h>
#include<conio.h>
main() {
int LA[] = {1,3,5,7,8};
int n = 5;
int i = 0, j = n;
printf("The original array elements are :\n");
for(i = 0; i<n; i++) {
printf("LA[%d] = %d \n", i, LA[i]);
}
}
When we compile and execute the above program, it produces the following result −
Output
The original array elements are :
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
Insertion Operation
Insert operation is to insert one or more data elements into an array. Based on the requirement, a new element can
be added at the beginning, end, or any given index of array.
Here, we see a practical implementation of insertion operation, where we add data at the end of the array −
Example
Following is the implementation of the above algorithm −
#include <stdio.h>
#include<conio.h>
main() {
int Arr[] = {11,33,55,77,22};
int item = 88, pos = 3, n = 5;
int i = 0, j = n;
n = n + 1;
while( j > pos) {
Arr[j] = Arr[j-1];
j = j - 1;
}
Arr[pos] = item;
n=n+1;
for(i=n;i>1;i--)
{
arr[i-1]=arr[i-2];
}
arr[0]=77;
printf("\nArray Element after insertion at First");
for(i=0;i<n;i++)
{
printf("\nArray[%d]=%d",i,arr[i]);
}
return 0;
}
n=n+1;
printf("\nEnter the index position to enter element: ");
scanf("%d",&pos);
for(i=n;i>pos+1;i--)
{
arr[i-1]=arr[i-2];
}
arr[pos]=88;
printf("\nArray Element after insertion at First");
for(i=0;i<n;i++)
{
printf("\nArray[%d]=%d",i,arr[i]);
}
return 0;
}
Deletion Operation
Deletion refers to removing an existing element from the array and re-organizing all elements of an array.
Algorithm
Consider LA is a linear array with N elements and K is a positive integer such that K<=N. Following is the
algorithm to delete an element available at the Kth position of LA.
1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop
Example
Following is the implementation of the above algorithm −
#include <stdio.h>
#include<conio.h>
void main() {
int LA[] = {1,3,5,7,8};
int k = 3, n = 5;
int i, j;
j = k;
while( j < n)
{
LA[j] = LA[j+1];
j = j + 1;
}
n = n -1;
Search Operation
You can perform a search for an array element based on its value or its index.
Algorithm
Consider LA is a linear array with N elements and K is a positive integer such that K<=N. Following is the
algorithm to find an element with a value of ITEM using sequential search.
1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. IF LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRINT J, ITEM
7. Stop
Example
Following is the implementation of the above algorithm −
#include <stdio.h>
#include<conio.h>
void main() {
int LA[] = {1,3,5,7,8};
int item = 7, n = 5;
int i = 0, j = 0;
j = j + 1;
}
Update Operation
Update operation refers to updating an existing element from the array at a given index.
Algorithm
Consider LA is a linear array with N elements and K is a positive integer such that K<=N. Following is the
algorithm to update an element available at the Kth position of LA.
1. Start
2. Set LA[K-1] = ITEM
3. Stop
Example
Following is the implementation of the above algorithm −
#include <stdio.h>
#include<conio.h>
void main() {
int LA[] = {1,3,5,7,8};
int k = 3, n = 5, item = 10;
int i, j;
LA[k-1] = item;
Before understanding how to use structures and pointers in C together, let us understand how structures are
defined and accessed using the variable name.
C struct keyword is used to create a new data type, followed by the structure name. We define different
members of the structure inside parenthesis. Once a structure is defined, its name structure_name can be used to
declare variables as
This way structures and pointers in C are used together to create a pointer pointing to the structure.
structure_pointer = &structure_variable;
Also, the structure pointer can be initialized during the time of declaration.
1. Using asterisk (*) and dot (.) operator with the structure pointer.
2. Using membership or arrow (->) operator.
#include<stdio.h>
struct Student {
char name[30];
int age;
int roll_number;
};
int main() {
struct Student student_1;
struct Student *sp = &student_1;
printf ("\n Display the details of the student_1 using Structure Pointer\n");
printf ("\tName: %s\n", sp->name);
printf ("\tAge: %d\n", sp->age);
printf ("\tRoll Number: %d", sp->roll_number);
return 0;
}