# Python Data Structures: Your Starter Kit to Learning Algorithms

Arrays, Linked Lists, Stacks, Queues and Hash Tables. Working with any kind of algorithm starts with learning a set of data structures associated with it.

Working with any kind of algorithm starts with learning a set of data structures associated with it. This makes sense since most algorithms work on some kind of data that must be stored and held somehow, somewhere. That’s where data structures come handy!

Data Structures are used to organize information and data in a variety of ways such that an algorithm can be applied to the structure in the most efficient way possible.

In this post, I will give a basic introduction to the most common data structures used. I will do so using the Python language. By the end of the post, you will gain your first introduction to arrays, linked lists, stacks, queues, and hash tables in Python.

Let’s get started!

# Arrays

An array is a collection of elements where the position of each element is defined by an index or a key value. A one-dimensional array, for example, contains a linear set of values. In an array, element position can be calculated mathematically thus enabling array elements to be accessed directly. Since the position of each element in the array can be directly computed, we do not need to navigate the entire data structure to be able to access a particular element.

In Python, arrays are indexed starting at zero. In other words, the first element of the array is at index 0, the second at index 1, the third at 2 and so on. To access an element inside a one-dimensional array, we provide one index. For two-dimensional arrays, two indices are needed.

Time complexity of basic operations on arrays:

1. Calculating the index of an element in an array is a constant time operation. In Big-O notation, this is indicated by O(1). The operation is not dependent on how many elements the array contains.
2. Appending or deleting an element at the beginning or in the middle of an array is an operation with linear time complexity. In Big-O notation, this is indicated by O(n). This is because the remaining elements already present in the array will need to be moved to new locations in memory.
3. Appending or deleting an element at the end of an array is an operation of constant time complexity O(1). This is independent of the size of the array since we do not need to move other elements in the array to new locations in memory. We simply are adding an element to the end of the array.

Much like arrays, linked lists are made up of a linear collection of elements called nodes. They differ, however, in that each node contains a reference that identifies the next node in the list. The first node in a linked list is called the head. Each node contains a field that points to the next element in the list. The last node contains a field that points to null.

A_ singly-linked list_ is one where only one direction is provided at each node. In other words, each item in the list only has reference to its next neighboring node. A doubly-linked list is a list where each node has a reference to the neighboring node that precedes it and the one that follows it.

## Python Data Structures: Your Starter Kit to Learning Algorithms

This is just meant as a friendly introduction to a topic that every computer science and data science program I know off explores in an entire course or a few.

## 15 Machine Learning and Data Science Project Ideas with Datasets

Learning is a new fun in the field of Machine Learning and Data Science. In this article, we’ll be discussing 15 machine learning and data science projects.

## How To Build A Data Science Career In 2021

In Conversation With Dr Suman Sanyal, NIIT University,he shares his insights on how universities can contribute to this highly promising sector and what aspirants can do to build a successful data science career.

## Applied Data Analysis in Python - Machine Learning and Data science

Applied Data Analysis in Python - Machine Learning and Data science. Machine learning in Python. This course at the University of Bristol covers scikit-learn, fitting, correlation and clustering.

## Learn Programming, Software Engineering, Machine Learning, And More

Best Free Resources to Learn Programming, Software Engineering, Machine Learning, And More All you need to learn. Do you know that you can take the courses from MIT, Stanford.