Tutorial

Tutorial

The **data structure** is a way that specifies how to organize and manipulate the **data**. It also defines the relationship between them. Some examples of **Data Structures** are arrays, Linked List, Stack, Queue, etc.

An **ADT** is a mathematical model of a **data structure** that specifies the type of **data** stored, the operations supported on them, and the types of parameters of the operations. An **ADT** specifies what each operation does, but not how it does it. Typically, an **ADT** can be implemented using one of many different **data structures**.

They are essential components in creating fast and powerful algorithms. They help to manage and organize **data** so that it will make our code cleaner and easier to understand. **Data structures** can make the difference between an Okay product and an outstanding one.

**To** implement printer spooler so that jobs **can** be printed in **the** order of their arrival. **To** implement back functionality in **the** internet browser. **To** store **the** possible moves in a chess game. **To** store a set of ﬁxed key words which are referenced very frequently.

In my opinion, C would be the **best language** to **learn data structures and algorithms** because it will force you to write your own. It will force you to **understand** pointers, dynamic memory allocation, and the implementations behind the popular data structures like linked lists, hash tables, etc.

A **vector** is a one-dimensional **data structure** and all of its elements are of the same **data** type. A factor is one-dimensional and every element must be one of a fixed set of values, called the levels of the factor.

There are two fundamental kinds of data structures: **array of contiguous memory locations and linked structures**.

The advantages of queues are **that the multiple data can be handled**, and they are fast and flexibility, and Disadvantages of queues: To include a new element in the queue, the other elements must be deleted.

In a linear queue, the traversal through the queue is possible only once,i.e.,once an element is deleted, we cannot insert another element in its position. This disadvantage of a linear queue **is overcome by a circular queue**, thus saving memory.

The dequeue stands for **Double Ended Queue**. In the queue, the insertion takes place from one end while the deletion takes place from another end. The end at which the insertion occurs is known as the rear end whereas the end at which the deletion occurs is known as front end.

Data Structure Analysis **summarizes a program’s memory composition and con- nectivity patterns by building a Data** Structure Graph (DS graph) for each available function in the program. Many design features of DS graphs have been carefully chosen to make the analysis very efficient in practice.

- Input specified.
- Output specified.
- Definiteness.
- Effectiveness.
- Finiteness.

Big O notation is a mathematical notation that **describes the limiting behavior of a function when the argument tends towards a particular value or infinity**. In computer science, big O notation is used to classify algorithms according to how their run time or space requirements grow as the input size grows.