Array Data Structure
Array Data Structure
What is an Array?
An array is a type of linear data structure that is defined as a collection of elements with same or
different data types. They exist in both single dimension and multiple dimensions. These data
structures come into picture when there is a necessity to store multiple elements of similar nature
together at one place.
The difference between an array index and a memory address is that the array index acts like a key
value to label the elements in the array. However, a memory address is the starting address of free
memory available.
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.
Syntax
Creating an array in C and C++ programming languages −
data_type array_name[array_size]={elements separated by commas}
or,
data_type array_name[array_size];
Creating an array in Java programming language −
data_type[] array_name = {elements separated by commas}
or,
data_type array_name = new data_type[array_size];
Need for Arrays
Arrays are used as solutions to many problems from the small sorting problems to more complex
problems like travelling salesperson problem. There are many data structures other than arrays that
provide efficient time and space complexity for these problems, so what makes using arrays better?
The answer lies in the random access lookup time.
Arrays provide O(1) random access lookup time. That means, accessing the 1st index of the array
and the 1000th index of the array will both take the same time. This is due to the fact that array
comes with a pointer and an offset value. The pointer points to the right location of the memory
and the offset value shows how far to look in the said memory.
array_name[index]
| |
Pointer Offset
Therefore, in an array with 6 elements, to access the 1st element, array is pointed towards the 0th
index. Similarly, to access the 6th element, array is pointed towards the 5th index.
Array Representation
Arrays are represented as a collection of buckets where each bucket stores one element. These
buckets are indexed from '0' to 'n-1', where n is the size of that particular array. For example, an
array with size 10 will have buckets indexed from 0 to 9.
This indexing will be similar for the multidimensional arrays as well. If it is a 2-dimensional array,
it will have sub-buckets in each bucket. Then it will be indexed as array_name[m][n], where m
and n are the sizes of each level in the array.
As per the above illustration, following are the important points to be considered.
➢ Index starts with 0.
➢ Array length is 9 which means it can store 9 elements.
➢ Each element can be accessed via its index. For example, we can fetch an element at index
6 as 23.
Basic Operations in Arrays
The basic operations in the Arrays are insertion, deletion, searching, display, traverse, and update.
These operations are usually performed to either modify the data in the array or to report the status
of the array.
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.
➢ Display − Displays the contents of the array.
Array - Insertion Operation
In the insertion operation, we are adding one or more elements to the array. Based on the
requirement, a new element can be added at the beginning, end, or any given index of array. This
is done using input statements of the programming languages.
Algorithm
Following is an algorithm to insert elements into a Linear Array until we reach the end of the array:
1. Start
2. Create an Array of a desired datatype and size.
3. Initialize a variable 'i' as 0.
4. Enter the element at ith index of the array.
5. Increment i by 1.
6. Repeat Steps 4 & 5 until the end of the array.
7. Stop
Example
Here, we see a practical implementation of insertion operation, where we add data at the end of
the array:
#include <iostream>
using namespace std;
int main(){
int LA[3] = {}, i;
cout << "Array Before Insertion:" << endl;
for(i = 0; i < 3; i++)
cout << "LA[" << i <<"] = " << LA[i] << endl;
#include <iostream>
using namespace std;
int main(){
int LA[] = {1,3,5,7,8};
int item = 10, k = 3, n = 5;
int i = 0, j = n;
cout << "The original array elements are :\n";
for(i = 0; i<n; i++)
cout << "LA[" << i << "] = " << LA[i] << endl;
LA[2] = item;
cout << "The array elements after updation are :\n";
for(i = 0; i<n; i++)
cout << "LA[" << i << "] = " << LA[i] << endl;
return 0;
}
Output
The original array elements are:
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8
The array elements after updation :
LA[0] = 1
LA[1] = 3
LA[2] = 10
LA[3] = 7
LA[4] = 8
Array - Display Operation
This operation displays all the elements in the entire array using a print statement.
Algorithm
Consider LA is a linear array with N elements. Following is the algorithm to display an array
elements.
1. Start
2. Print all the elements in the Array
3. Stop
Example
Following are the implementations of this operation in various programming languages:
#include <iostream>
using namespace std;
int main(){
int LA[] = {1,3,5,7,8};
int n = 5;
int i;
cout << "The original array elements are :\n";
for(i = 0; i<n; i++)
cout << "LA[" << i << "] = " << LA[i] << endl;
return 0;
}
Output
The original array elements are:
LA[0] = 1
LA[1] = 3
LA[2] = 5
LA[3] = 7
LA[4] = 8