1627310580

A circular queue data structure is a type of queue data structure which overcomes the drawback of simple queue data structure.

In simple queue data structure, as values are dequeued from the front side, they become in-accessible according the standard algorithm.

However, in circular queue data structure, those inaccessible memory locations can be accessed again since the the rear and front pointer revolved and iterate through the index positions of the queue.

#Queue Data Structure #Data Structures #C++

#queue data structure #data structures #c++

1627310580

A circular queue data structure is a type of queue data structure which overcomes the drawback of simple queue data structure.

In simple queue data structure, as values are dequeued from the front side, they become in-accessible according the standard algorithm.

However, in circular queue data structure, those inaccessible memory locations can be accessed again since the the rear and front pointer revolved and iterate through the index positions of the queue.

#Queue Data Structure #Data Structures #C++

#queue data structure #data structures #c++

1620466520

If you accumulate data on which you base your decision-making as an organization, you should probably think about your data architecture and possible best practices.

If you accumulate data on which you base your decision-making as an organization, you most probably need to think about your data architecture and consider possible best practices. Gaining a competitive edge, remaining customer-centric to the greatest extent possible, and streamlining processes to get on-the-button outcomes can all be traced back to an organization’s capacity to build a future-ready data architecture.

In what follows, we offer a short overview of the overarching capabilities of data architecture. These include user-centricity, elasticity, robustness, and the capacity to ensure the seamless flow of data at all times. Added to these are automation enablement, plus security and data governance considerations. These points from our checklist for what we perceive to be an anticipatory analytics ecosystem.

#big data #data science #big data analytics #data analysis #data architecture #data transformation #data platform #data strategy #cloud data platform #data acquisition

1602860400

Algorithms and data structures are considered core skills for software engineers. How useful are these skills for data scientists and analysts?

A typical data scientist spends most of their time in high-level languages such as Python/R/SQL and rarely needs to think about underlying implementations. This is due to fact that the majority of data analysis and machine learning algorithms are already packaged in ready-to-use, heavily optimised libraries — such as Scikit-Learn, Numpy, Pandas, and others (R fans have their own tools).

To answer the question if algorithms and data structures are worth your time, I will list a few tools you will have under your tool-belt after taking a typical algorithms course.

The first useful concept you will encounter is algorithmic complexity and **Big-Oh** notation. It is a method that allows understanding how well your code scales with the data. This concept is important to data scientists due to the need to process an ever-increasing amount of information produced daily.

By getting rid of less important details, you will be able to reason about the performance of an algorithm regardless if it is written in Python or C and executed on a laptop or NASA’s supercomputer. In a sense, it defines a basic vocabulary for the design and analysis of algorithms while suppressing architecture and language-dependent details — these are considered a constant factor, not relevant to the big picture.

As an example, imagine you are asked to choose a machine learning algorithm for a certain classification task and considering using Support Vector Machine (SVM) due to its good ability to handle non-linear decision boundaries.

#programming #data-science #algorithms #data-structures #machine-learning

1627306800

We will be implementing queue data structure and all its standard operations. We will implement queue using arrays in c++ programming language.

Following are the stack operations -

- enqueue() -

Elements are added from one end (Rear / Back). - dequeue() -

Elements are removed from one end (Head / Front). - isEmpty() -

Tells if the queue is empty or not - isfull() -

Tells if the queue is full or not. - count() -

Get the number of items in the queue. - display() -

Display all items in the queue

#queue #queueprogram #queuecpp #queuedatastructure #datastructures #queueds #queueoperations

#queue #c++ #queue data structure

1596658800

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!

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:

- 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.
- 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.
- 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.

#programming #data-science #towards-data-science #machine-learning #data-structures #data analysis