×

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

What is an AVL Tree in Data Structure?

AVL tree stands for (Adelson, Velskii, & Landis Tree) Data structure Data management is called database management. A data model is a system used to store, manage, and optimize computer resources. Data...

4 minutes read.

Find the nth node from the end of a Linked List

Find the nth node from the end of a Linked List In this problem, we have given a singly linked list and a number 'n,' and we need to find the...

3 minutes read.

Rearrange a linked list into alternate fashion first and the last element

Rearrange a linked list into alternate fashion first and the last element This article will explain how to rearrange the linked list into alternate fashion first and the last element. Here,...

3 minutes read.

Red Black Tree vs AVL Tree: Data Structure

Difference Between Red Black Tree vs AVL Tree Red Black Tree: A red-black tree is referred as self-balancing binary search tree. In red-black, each node stores an extra bit that determines...

4 minutes read.

Convert Binary Tree into a Threaded Binary Tree

Implementation /*Writing a C++ program that will help us change the binary tree into a threaded binary tree and help us transform. */ #include <bits/stdc++.h> using namespace std; /*Creating the structure of a node...

11 minutes read.

Diameter of a Binary Tree

Implementation We will now witness the implementation of the diameter of a binary tree. // Creating a recursive and challenging C program that will help us determine the diameter of a binary...

4 minutes read.

Recursion in Fibonacci

Fibonacci heap is considered to be a particular execution of the heap data structure that ultimately helps in making use of not just any number but the Fibonacci numbers. It...

3 minutes read.

Box Stacking Problem

Stacking of boxes depending on their base You have been given n different boxes. These boxes will have different heights, widths, and depths. You have to stack all these boxes in...

4 minutes read.

Optimal binary search tree in DSA

Implementation // A simple way of the recursive implementation of the optimal search that we will perform on the binary tree.   #include <bits/stdc++.h> using namespace std; // we have to create a basic utility...

8 minutes read.

Print kth least significant bit number

You have given a number and you have to find out the kth least significant bit of this number. K will be given to you.  The bit will be from...

3 minutes read.

About Data Structures

What exactly are data structures? A data structure is a type of storage that is used to organise and store data. It is a method of organising data on a computer...

5 minutes read.

Digital Search Tree in Data Structures

What is a digital search Tree in Data Structures? The Digital search tree is known for its application and diversity in the way it has impacted our world in the field...

3 minutes read.

Stack vs Array

Difference between Array and Stack In this article, we are going to discuss the major differences between the stack and array data structures: Array – In the data structure, the array is...

3 minutes read.

Given Two Binary Trees, Check if it is Symmetric

Implementation // creating a C++ program that will help us check whether the two given trees are mirror images of each other.  #include<bits/stdc++.h> using namespace std; /* A given binary tree has a data...

5 minutes read.

Serialize and Deserialize Binary Trees

In order to save a tree in a file that can later be restored, serialisation is used. The tree's structure must be preserved. Deserialization involves reading a tree from a...

4 minutes read.

Function to Insert a Node in a Binary Search Tree

Implementation // writing C++ code that will help us in implementing the insertion operation in a binary search tree. #include <bits/stdc++.h> using namespace std; // creating a new binary search tree node struct __nod { int...

8 minutes read.

Check if a Singly Linked List is Palindrome

Check if a Singly Linked List is Palindrome In this section, we have given a singly linked list, and we need to check whether the given list is a palindrome. Example:           1...

3 minutes read.

Pairwise swap elements of a given linked list

Pairwise swap elements of a given linked list In this problem, we have given a linked list, and we need to pairwise swap elements of the given linked list. Example:                                     Input:1 ->3...

4 minutes read.

Why is Binary Heap Preferred over BST for Priority Queue

A priority queue is a linear and ordered collection of elements in which each element has an attribute named priority and the priority attribute decides the order in which elements...

2 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.