Data Structures

Introduction to Data Structures

  • Data structures are a way of storing and organising data in a computer so that it can be used efficiently.
  • They are fundamental to creating efficient and elegant software applications.

Types of Data Structures

Arrays

  • An array is a data structure that holds a fixed number of values of a single type.
  • It is referred to by a common name, and its value can be accessed by their indices.
  • For example, if array = [1,2,3,4,5], array[2] would give the value 3.

Records

  • A record (also known as a structure) is a collection of labelled fields.
  • Each field holds a value, and all values within the record make up one entity.
  • For example, a student record might contain individual fields for name, age, and grade.

Lists

  • A list is a collection of items where each item holds a relative position with respect to the others.
  • Lists can grow and shrink dynamically as needed at runtime.
  • Unlike arrays, lists can hold different types of data.

Stacks

  • A stack operates on the principle of ‘Last In, First Out’ (LIFO).
  • This means the last element added to the stack will be the first one to be removed.

Queues

  • A queue operates on the principle of ‘First In, First Out’ (FIFO).
  • This means the first element added to the queue will be the first one to be removed.

Functions of Data Structures

Insertion

  • Insertion is the process of adding an element into the data structure at any random position.

Deletion

  • Deletion refers to the operation of removing an element from a data structure.

Traversing

  • Traversing is the operation of accessing each element of a data structure once to perform some operation.

Searching

  • Searching is the operation of finding the location of an element in a data structure.

Sorting

  • Sorting is the process of arranging the elements in a data structure in a certain order.

Remember, understanding how these different data structures work, their benefits, limitations and where to best apply them is key to effective programming and system development.