×

Array Data Structure

Data Structure Array: The array is a non-primitive and linear data structure that is a group of similar data items. That is, it can store only one type of data. The array is used to store a group of data objects. The array is a static data structure that means we can allocate memory only in compile-time and cannot convert it to run-time.

Array Memory representation

The following figure represents an int type array in which is eight elements. The index of the array starts at 0 and ends at 7 due to 8 elements.

Array Data Structure

Need of the Array

An array is especially helpful when working with lots of variables of the same data-type. 

For example, let's take a record of 100 employees, and now that record needs to be stored in the system. To solve this problem, either you have to create the 100 variables of int data-type or create an array of int type.

Program without array:

#include <stdio.h>
#include   <conio.h>
void main ()
{
int emp1_salary = 1500, 
emp2_salary = 500, 
emp3_salary = 500, 
emp4_salary = 1500, 
emp5_salary = 3500, 
emp6_salary = 2500, 
emp7_salary = 1500, 
emp8_salary = 4500, 
emp9_salary = 1500, 
emp10_salary = 500, 
emp11_salary = 2500, 
emp12_salary = 3500, 
emp13_salary = 4500, 
emp14_salary = 4000, 
emp15_salary =4500;
float avg = (emp1_salary + emp2_salary + emp3_salary + emp4_salary + emp5_salary +   emp6_salary + emp7_salary + emp8_salary + emp9_salary +   emp10_salary + emp11_salary + emp12_salary +   emp13_salary + emp14_salary + emp15_salary) / 15;
printf(avg);
}  

Program by using array:

#include <stdio.h>
#include   <conio.h>
void main ()
{    int emp_salary [15] = {1500,        500, 500, 1500, 3500, 4500, 1500, 500, 1500, 3500, 4500, 2500, 3500,        4000, 4500);   
int i;    float avg;   for (i=0; i<15; i++)    
{   avg = avg + emp_salary[i];}printf(avg);}     

See both programs; the first program is complex than the second program because the line of code of the first program is more than the second program. Therefore, Array is the best option when working with lots of variables of the same data-type.

Types of Array

There are three types of Array, as shown in the following:

  1. One dimensional Array
  2. Two-dimensional Array
  3. Multi-dimensional Array

One dimensional Array

One-dimensional arrays are those arrays that contain only one subscript. It is used to store data in the linear form.

One-dimensional Array declaration: 

data_type array_name[size];

For example:

int teacher[20];
float percentage[20];
char name[50]; 

Initializing One-Dimensional Array:

The array elements can be initialized after the array is declared. The initializer of the array is defined within braces and separated by commas.                        

int age[5] = {26,20,14,43,21};

Program of one-dimensional Array

 #include<stdio.h>
#include<conio.h>
int main()
{
int array[4], i;
for(i = 0; i < 4; i++)
{
printf("Enter a[%d] value: ", i);scanf("%d", &array[i]);
}
printf("\nPrinting elements of   the array: \n\n");for(i = 0; i < 4; i++){printf("%d ", array[i]);}return 0;
} 

Output

Enter a[0] value: 10
Enter a[1] value: 20   
Enter a[2] value: 30   
Enter a[3] value: 40       
Printing elements of the array:       10 20 30 40       

Two-dimensional Array

Two-dimensional arrays are those arrays that contain two subscripts. A two-dimensional array is also known as the matrix. The first subscript of the Array is denoted the number of rows in the array, and the second subscript is denoted the number of columns in the array. The total number of elements in a two-dimensional array is ROW*COLOUMN. 

One-dimensional Array declaration: 

data_type array_name[row_size][coloum_size];

For example:

int teacher[20][30];

Initializing a Two-Dimensional Array:

int teacher[2][3] = {1, 2, 3, 7, 8, 6 };
#include<stdio.h>
#define ROW 2
#define COL 3
int main()
{       
int matrix1[ROW][COL], matrix2[ROW][COL], matrix3[ROW][COL];      
int i, j;             printf("Enter first matrix:   \n\n");             
for(i = 0; i < ROW; i++)          
{                 
for(j = 0; j < COL; j++)              
 {                  
printf("Enter a[%d][%d]: ", i, j);                  
scanf("%d", &matrix1[i][j]);              
  }
              }
              printf("\nEnter Second matrix:   \n\n");  
           for(i = 0; i < ROW; i++)            
  {                 
  for(j = 0; j < COL; j++)     
              {                     
   printf("Enter a[%d][%d]: ", i, j);              
          scanf("%d", &matrix2[i][j]);               
      }           
      }     
    for(i = 0; i < ROW; i++)         
 {           
       for(j = 0; j < COL; j++)           
          {                     
 matrix3[i][j] = matrix1[i][j] + matrix2[i][j] ;                 
     }           
 }          
  printf("\nsum of array: \n\n");        
        for(i = 0; i < ROW; i++)               
   {             
       for(j = 0; j < COL; j++)           
             {           
 printf("%5d ", matrix3[i][j]);                       
  }           
  printf("\n");       
     }
return 0;}                                                                                                                                      

Output

Enter first matrix:       
Enter a[0][0]: 22   
Enter a[0][1]: 13   
Enter a[0][2]: 43   
Enter a[1][0]: 38   
Enter a[1][1]: 94   
Enter a[1][2]: 15       
Enter Second matrix:       
Enter a[0][0]: 17   
Enter a[0][1]: 26   
Enter a[0][2]: 78   
Enter a[1][0]: 44   
Enter a[1][1]: 24   
Enter a[1][2]: 80       
sum of array:       matrix1 + matrix2 =       39 39 121   82 118 95    

Multi-dimensional Array (3-d)

Multi-dimensional arrays are those arrays that contain more than two subscripts. The multi-dimensional array is also known as the 3-d array.

Advantages of Array

The advantages of the array are the following:

  1. It can be easily implemented.
  2. Different data items of the same type can be displayed by just one name.
  3. It can store multiple data items at the same time.

Disadvantages of Array

The disadvantages of the array are the following:

  1. The array is a static data structure due to which its size is already defined. 
  2. We have to traverse the entire array to delete and insert an element in the array.

Related Topics

Sorting Algorithms

Sorting: In the data structure, sorting is the process by which you arrange the data in a logical order. This logical order can also be an ascending order or a...

7 minutes read.

FLEX (Fast Lexical Analyzer Generator)

FLEX stands for Fast Lexical Analyzer Generator. Around 1987, Vern Paxson created Flex in C with a great deal of input and inspiration from Van Jacobson. Van Jacobson's approach is...

3 minutes read.

Left View of Binary Tree

Implementation // creating a C++ program to print the Left view of the binary tree. #include <bits/stdc++.h> using namespace std; struct Nod { int record; struct Nod *Lft, *Rt; }; // creating a utility function that will eventually help...

4 minutes read.

Insertion Sort vs Bubble Sort

In this article, we will see the major differences between Insertion Sort and Bubble Sort. Before that, let’s have a quick overview of what these sorting algorithms are and what’s...

4 minutes read.

Intersection Point in Y Shaped Linked Lists in Java

Intersection Point in Y Shaped Linked Lists in Java In this article, we are going to see how to find the intersection point in a Y-shaped linked list. Method 1: We need to...

4 minutes read.

Boruvkas algorithm

This algorithm is used for finding minimum spanning tree from a weighted graph. Like prim’s and kruskal’s algorithm it is also a greedy algorithm. Note:What is the minimum spanning tree?We know...

4 minutes read.

Recursion - Factorial and Fibonacci

In this article, we will learn how to find the factorial of a number and the Fibonacci series up to n using the recursion method. What is recursion? Defining anything in terms...

7 minutes read.

Bubble Sort vs Selection Sort

In this article, we will discuss the basic differences between these two sorting algorithms. Let us have a quick overview of what these sorting algorithms are? And what are the...

6 minutes read.

Create a binary search tree

Implementation In this section of the article, we will see the usage and mechanism of how we will create a given binary tree. Let's observe these in more depth and then...

7 minutes read.

Blowfish algorithm

The Blowfish algorithm is the very first encryption algorithm which is symmetric. It was firstly used as an alternate algorithm for the DES algorithm. It was designed by Bruce Steiner...

3 minutes read.

Extended Binary Tree

An extended binary tree is a binary tree in which all the NILL subtrees present mainly in the original trees are exchanged with the special nodes that are primarily known...

3 minutes read.

Find Number of Minimum Insertion to Make a String Palindrome

You have been given a string. You have to find out the number of minimum insertions to make this string palindrome. The string will contain only lower case alphabets. Note:What is...

4 minutes read.

Horizontal and Vertical Scaling

Being a software engineer, you would have designed a website or application and deployed it on any server. Imagine that the developed application starts getting popular, and many users engage...

6 minutes read.

Heap Sort in Data Structure

Heap Sort: Heap Sort is very useful and efficient sorting algorithm in data structure. We can say it is a comparison base sorting algorithm, similar sort where we will find...

2 minutes read.

Delete a Node without head pointer from the linked list

Delete a Node without head pointer from the linked list This article will explain how to delete a node without a head pointer from the linked list. We have given a...

2 minutes read.

Bitwise Operators and their Important Tricks

In most of the programs you write today, you deal with data types comprising bytes, such as integer, float, double, etc. Dealing with bytes? It is a quite normal task,...

5 minutes read.

Threaded Binary Trees

Introduction Threaded Binary Trees (TBTs) are an enhancement of normal binary trees intended for in-order traversal only. This means that this data structure is developed with the objective of making the...

12 minutes read.

Operations on Queue in Data Structures

A queue is a linear structure where operations are done in a specific sequence. Queues are abstract data structures that are comparable to Stacks. A queue, unlike a stack, is...

8 minutes read.

Selection Sort

In each iteration of the selection sort algorithm, the smallest item from an unsorted list is chosen and placed at the top of the unsorted list. Algorithm of Selection Sorting In order...

3 minutes read.

Tree terminology in Data structures

Data structures The storage used to organize and store data is known as a data structure, and it is a method where data can be arranged on a computer to be...

6 minutes read.