0% found this document useful (0 votes)
0 views8 pages

Array Notes

The document provides an introduction to arrays, detailing their types including one-dimensional, two-dimensional, triangular, and sparse matrices. It explains their representation in C++, including syntax, memory representation, and example programs for each type. The conclusion emphasizes the importance of arrays in programming for efficient data storage and manipulation.

Uploaded by

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

Array Notes

The document provides an introduction to arrays, detailing their types including one-dimensional, two-dimensional, triangular, and sparse matrices. It explains their representation in C++, including syntax, memory representation, and example programs for each type. The conclusion emphasizes the importance of arrays in programming for efficient data storage and manipulation.

Uploaded by

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

Chapter 1: Introduction to Arrays

An array is a collection of elements, all of which are of the same


data type. Arrays are used to store multiple values in a single
variable, instead of declaring separate variables for each value.

Types of Arrays:

One-Dimensional Arrays: A single row or column of elements.

Two-Dimensional Arrays: A matrix-like structure with rows and


columns.

Triangular Arrays: Specialized form of arrays used to store


triangular data structures.

Sparse Matrices: Matrices with a majority of elements as zero or


empty, o en stored in a compressed form to save space.

Chapter 2: Representation of One-Dimensional Arrays

Theory:

A one-dimensional array is a list of elements stored in contiguous


memory locations. The elements are accessed using an index. In
C++, arrays are static, meaning their size is xed at the time of
declaration.

Syntax in C++:

cpp
Copy code

dataType arrayName[arraySize];

Example:

cpp

Copy code

int arr[5]; // Declares an integer array of size 5 arr[0] = 10; //


Assigning values to the array arr[1] = 20; arr[2] = 30; arr[3] = 40;
arr[4] = 50;

Memory Representation:

The array arr will occupy 5 contiguous memory locations, each


holding an integer. The elements of the array can be accessed
using the index:

arr[0] = 10

arr[1] = 20

arr[2] = 30

arr[3] = 40

arr[4] = 50
Example Program:

cpp

Copy code

#include <iostream> using namespace std; int main() { int arr[5] =


{10, 20, 30, 40, 50}; // Initializing array with values for (int i = 0; i < 5;
i++) { cout << "Element at index " << i << ": " << arr[i] << endl; } return
0; }

Chapter 3: Representation of Two-Dimensional Arrays

Theory:

A two-dimensional array can be thought of as a matrix with rows


and columns. In C++, it is represented as an array of arrays.

Syntax in C++:

cpp

Copy code

dataType arrayName[rows][columns];

Example:

cpp

Copy code
int matrix[3][3]; // Declares a 3x3 matrix matrix[0][0] = 1; //
Assigning values to the matrix matrix[0][1] = 2; matrix[0][2] = 3;
matrix[1][0] = 4; matrix[1][1] = 5; matrix[1][2] = 6; matrix[2][0] = 7;
matrix[2][1] = 8; matrix[2][2] = 9;

Memory Representation:

A 3x3 matrix will occupy 9 contiguous memory locations. Each


element can be accessed using a pair of indices, for example,
matrix[0][0] = 1, matrix[1][1] = 5, etc.

Example Program:

cpp

Copy code

#include <iostream> using namespace std; int main() { int


matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; for (int i = 0; i < 3; i++) { for
(int j = 0; j < 3; j++) { cout << "Element at [" << i << "][" << j << "]: " <<
matrix[i][j] << endl; } } return 0; }

Chapter 4: Triangular Arrays

Theory:

Triangular arrays are a type of two-dimensional array where the


number of elements in each row follows a triangular pa ern. This is
used to save space when dealing with ce ain mathematical
problems, such as storing upper or lower triangular matrices.
There are two types of triangular matrices:

Upper Triangular Matrix: All elements below the main diagonal are
zero.

Lower Triangular Matrix: All elements above the main diagonal are
zero.

Representation:

In a triangular matrix, we can either store the non-zero elements in


a compact form (using a one-dimensional array) or use a
two-dimensional array and store the zero elements.

Upper Triangular Matrix Example:

cpp

Copy code

int upperTriangular[3][3] = { {1, 2, 3}, {0, 4, 5}, {0, 0, 6} };

Example Program:

cpp

Copy code

#include <iostream> using namespace std; int main() { int


upperTriangular[3][3] = { {1, 2, 3}, {0, 4, 5}, {0, 0, 6} }; for (int i = 0; i <
3; i++) { for (int j = 0; j < 3; j++) { cout << upperTriangular[i][j] << " "; }
cout << endl; } return 0; }

Chapter 5: Sparse Matrices

Theory:

A sparse matrix is a matrix in which the majority of the elements


are zero or have no signi cant value. Sparse matrices are typically
used in scienti c computations, where most of the matrix
elements are zero.

Representation:

There are two ways to represent a sparse matrix:

Array Representation: Store the non-zero elements and their


positions (row, column).

Linked List Representation: Use linked lists to store the non-zero


elements and their positions.

Array Representation of Sparse Matrices:

In array representation, we store each non-zero element along with


its row and column indices. This reduces the storage requirement
compared to a full matrix.

Example: If the matrix is:

Copy code
000005000008

We can represent it as:

markdown

Copy code

Row | Column | Value --------------------- 1 | 1 | 5 3 | 4 | 8

Example Program:

cpp

Copy code

#include <iostream> using namespace std; struct Element { int row,


col, value; }; int main() { Element sparseMatrix[2] = { {1, 1, 5}, {3, 4, 8}
}; for (int i = 0; i < 2; i++) { cout << "Row: " << sparseMatrix[i].row << ",
Column: " << sparseMatrix[i].col << ", Value: " <<
sparseMatrix[i].value << endl; } return 0; }

Linked List Representation of Sparse Matrices:

In the linked list representation, each non-zero element is stored in


a node. The node contains the row, column, value, and a pointer to
the next node.

Example Program:
cpp

Copy code

#include <iostream> using namespace std; struct Node { int row,


col, value; Node* next; }; int main() { Node* head = new Node{1, 1, 5,
nullptr}; head->next = new Node{3, 4, 8, nullptr}; Node* temp =
head; while (temp != nullptr) { cout << "Row: " << temp->row << ",
Column: " << temp->col << ", Value: " << temp->value << endl; temp =
temp->next; } return 0; }

Chapter 6: Conclusion

Arrays are fundamental structures in computer programming and


are widely used for storing and manipulating large amounts of
data. C++ provides e cient ways to represent arrays, including
specialized representations for sparse matrices and triangular
arrays. Understanding how to e ciently store and manipulate
these data structures is crucial for optimizing both time and
space complexity in algorithms.

This outline provides a basic framework for your assignment. You


can fu her elaborate on each section by adding more code
examples, diagrams, and detailed explanations of the algorithms
involved. If you need help with more examples or explanations, feel
free to ask!

You might also like