Most people feel much better when they organize their personal spaces. Whether that’s an office, living room, or bedroom, it feels good to have everything arranged. Besides giving you a sense of peace and satisfaction, a neatly-organized space ensures you can find everything you need with ease.

The same goes for programs. They need data structures, i.e., ways of organizing data to ensure optimized processing, storage, and retrieval. Without data structures, it would be impossible to create efficient, functional programs, meaning the entire computer science field wouldn’t have its foundation.

Not all data structures are created equal. You have primitive and non-primitive structures, with the latter being divided into several subgroups. If you want to be a better programmer and write reliable and efficient codes, you need to understand the key differences between these structures.

In this introduction to data structures, we’ll cover their classifications, characteristics, and applications.

Primitive Data Structures

Let’s start our journey with the simplest data structures. Primitive data structures (simple data types) consist of characters that can’t be divided. They aren’t a collection of data and can store only one type of data, hence their name. Since primitive data structures can be operated (manipulated) directly according to machine instructions, they’re invaluable for the transmission of information between the programmer and the compiler.

There are four basic types of primitive data structures:

  • Integers
  • Floats
  • Characters
  • Booleans

Integers

Integers store positive and negative whole numbers (along with the number zero). As the name implies, integer data types use integers (no fractions or decimal points) to store precise information. If a value doesn’t belong to the numerical range integer data types support, the server won’t be able to store it.

The main advantages here are space-saving and simplicity. With these data types, you can perform arithmetic operations and store quantities and counts.

Floats

Floats are the opposite of integers. In this case, you have a “floating” number or a number that isn’t whole. They offer more precision but still have a high speed. Systems that have very small or extremely large numbers use floats.

Characters

Next, you have characters. As you may assume, character data types store characters. The characters can be a string of uppercase and/or lowercase single or multibyte letters, numbers, or other symbols that the code set “approves.”

Booleans

Booleans are the third type of data supported by computer programs (the other two are numbers and letters). In this case, the values are positive/negative or true/false. With this data type, you have a binary, either/or division, so you can use it to represent values as valid or invalid.

Linear Data Structures

Let’s move on to non-primitive data structures. The first on our agenda are linear data structures, i.e., those that feature data elements arranged sequentially. Every single element in these structures is connected to the previous and the following element, thus creating a unique linear arrangement.

Linear data structures have no hierarchy; they consist of a single level, meaning the elements can be retrieved in one run.

We can distinguish several types of linear data structures:

  • Arrays
  • Linked lists
  • Stacks
  • Queues

Arrays

Arrays are collections of data elements belonging to the same type. The elements are stored at adjoining locations, and each one can be accessed directly, thanks to the unique index number.

Arrays are the most basic data structures. If you want to conquer the data science field, you should learn the ins and outs of these structures.

They have many applications, from solving matrix problems to CPU scheduling, speech processing, online ticket booking systems, etc.

Linked Lists

Linked lists store elements in a list-like structure. However, the nodes aren’t stored at contiguous locations. Here, every node is connected (linked) to the subsequent node on the list with a link (reference).

One of the best real-life applications of linked lists is multiplayer games, where the lists are used to keep track of each player’s turn. You also use linked lists when viewing images and pressing right or left arrows to go to the next/previous image.

Stacks

The basic principles behind stacks are LIFO (last in, first out) or FILO (first in, last out). These data structures stick to a specific order of operations and entering and retrieving information can be done only from one end. Stacks can be implemented through linked lists or arrays and are parts of many algorithms.

With stacks, you can evaluate and convert arithmetic expressions, check parentheses, process function calls, undo/redo your actions in a word processor, and much more.

Queues

In these linear structures, the principle is FIFO (first in, first out). The data the program stores first will be the first to process. You could say queues work on a first-come, first-served basis. Unlike stacks, queues aren’t limited to entering and retrieving information from only one end. Queues can be implemented through arrays, linked lists, or stacks.

There are three types of queues:

  • Simple
  • Circular
  • Priority

You use these data structures for job scheduling, CPU scheduling, multiple file downloading, and transferring data.

Non-Linear Data Structures

Non-linear and linear data structures are two diametrically opposite concepts. With non-linear structures, you don’t have elements arranged sequentially. This means there isn’t a single sequence that connects all elements. In this case, you have elements that can have multiple paths to each other. As you can imagine, implementing non-linear data structures is no walk in the park. But it’s worth it. These structures allow multi-level storage (hierarchy) and offer incredible memory efficiency.

Here are three types of non-linear data structures we’ll cover:

  • Trees
  • Graphs
  • Hash tables

Trees

Naturally, trees have a tree-like structure. You start at the root node, which is divided into other nodes, and end up with leaf modes. Every node has one “parent” but can have multiple “children,” depending on the structure. All nodes contain some type of data.

Tree structures provide easier access to specific data and guarantee efficiency.

Three structures are often used in game development and indexing databases. You’ll also use them in machine learning, particularly decision analysis.

Graphs

The two most important elements of every graph are vertices (nodes) and edges. A graph is essentially a finite collection of vertices connected by edges. Although they may look simple, graphs can handle the most complex tasks. They’re used in operating systems and the World Wide Web.

You unconsciously use graphs with Google Maps. When you want to know the directions to a specific location, you enter it in the map. At that point, the location becomes the node, and the path that guides you is the edge.

Hash Tables

With hash tables, you store information in an associative manner. Every data value gets its unique index value, meaning you can quickly find exactly what you’re looking for.

This may sound complex, so let’s check out a real-life example. Think of a library with over 30,000 books. Every book gets a number, and the librarian uses this number when trying to locate it or learn more details about it.

That’s exactly how hash tables work. They make the search process and insertion much faster, which is why they have a wide array of applications.

Specialized Data Structures

When data structures can’t be classified as either linear or non-linear, they’re called specialized data structures. These structures have unique applications and principles and are used to represent specialized objects.

Here are three examples of these structures:

  • Trie
  • Bloom Filter
  • Spatial Data

Trie

No, this isn’t a typo. “Trie” is derived from “retrieval,” so you can guess its purpose. A trie stores data which you can represent as graphs. It consists of nodes and edges, and every node contains a character that comes after the word formed by the parent node. This means that a key’s value is carried across the entire trie.

Bloom Filter

A bloom filter is a probabilistic data structure. You use it to analyze a set and investigate the presence of a specific element. In this case, “probabilistic” means that the filter can determine the absence but can result in false positives.

Spatial Data Structures

These structures organize data objects by position. As such, they have a key role in geographic systems, robotics, and computer graphics.

Choosing the Right Data Structure

Data structures can have many benefits, but only if you choose the right type for your needs. Here’s what to consider when selecting a data structure:

  • Data size and complexity – Some data structures can’t handle large and/or complex data.
  • Access patterns and frequency – Different structures have different ways of accessing data.
  • Required data structure operations and their efficiency – Do you want to search, insert, sort, or delete data?
  • Memory usage and constraints – Data structures have varying memory usages. Plus, every structure has limitations you’ll need to get acquainted with before selecting it.

Jump on the Data Structure Train

Data structures allow you to organize information and help you store and manage it. The mechanisms behind data structures make handling vast amounts of data much easier. Whether you want to visualize a real-world challenge or use structures in game development, image viewing, or computer sciences, they can be useful in various spheres.

As the data industry is evolving rapidly, if you want to stay in the loop with the latest trends, you need to be persistent and invest in your knowledge continuously.

Related posts

Agenda Digitale: The Five Pillars of the Cloud According to NIST – A Compass for Businesses and Public Administrations
OPIT - Open Institute of Technology
OPIT - Open Institute of Technology
Jun 26, 2025 7 min read

Source:


By Lokesh Vij, Professor of Cloud Computing Infrastructure, Cloud Development, Cloud Computing Automation and Ops and Cloud Data Stacks at OPIT – Open Institute of Technology

NIST identifies five key characteristics of cloud computing: on-demand self-service, network access, resource pooling, elasticity, and metered service. These pillars explain the success of the global cloud market of 912 billion in 2025

In less than twenty years, the cloud has gone from a curiosity to an indispensable infrastructure. According to Precedence Research, the global market will reach 912 billion dollars in 2025 and will exceed 5.1 trillion in 2034. In Europe, the expected spending for 2025 will be almost 202 billion dollars. At the base of this success are five characteristics, identified by the NIST (National Institute of Standards and Technology): on-demand self-service, network access, shared resource pool, elasticity and measured service.

Understanding them means understanding why the cloud is the engine of digital transformation.

On-demand self-service: instant provisioning

The journey through the five pillars starts with the ability to put IT in the hands of users.

Without instant provisioning, the other benefits of the cloud remain potential. Users can turn resources on and off with a click or via API, without tickets or waiting. Provisioning a VM, database, or Kubernetes cluster takes seconds, not weeks, reducing time to market and encouraging continuous experimentation. A DevOps team that releases microservices multiple times a day or a fintech that tests dozens of credit-scoring models in parallel benefit from this immediacy. In OPIT labs, students create complete Kubernetes environments in two minutes, run load tests, and tear them down as soon as they’re done, paying only for the actual minutes.

Similarly, a biomedical research group can temporarily allocate hundreds of GPUs to train a deep-learning model and release them immediately afterwards, without tying up capital in hardware that will age rapidly. This flexibility allows the user to adapt resources to their needs in real time. There are no hard and fast constraints: you can activate a single machine and deactivate it when it is no longer needed, or start dozens of extra instances for a limited time and then release them. You only pay for what you actually use, without waste.

Wide network access: applications that follow the user everywhere

Once access to resources is made instantaneous, it is necessary to ensure that these resources are accessible from any location and device, maintaining a uniform user experience. The cloud lives on the network and guarantees ubiquity and independence from the device.

A web app based on HTTP/S can be used from a laptop, tablet or smartphone, without the user knowing where the containers are running. Geographic transparency allows for multi-channel strategies: you start a purchase on your phone and complete it on your desktop without interruptions. For the PA, this means providing digital identities everywhere, for the private sector, offering 24/7 customer service.

Broad access moves security from the physical perimeter to the digital identity and introduces zero-trust architecture, where every request is authenticated and authorized regardless of the user’s location.

All you need is a network connection to use the resources: from the office, from home or on the move, from computers and mobile devices. Access is independent of the platform used and occurs via standard web protocols and interfaces, ensuring interoperability.

Shared Resource Pools: The Economy of Scale of Multi-Tenancy

Ubiquitous access would be prohibitive without a sustainable economic model. This is where infrastructure sharing comes in.

The cloud provider’s infrastructure aggregates and shares computational resources among multiple users according to a multi-tenant model. The economies of scale of hyperscale data centers reduce costs and emissions, putting cutting-edge technologies within the reach of startups and SMBs.

Pooling centralizes patching, security, and capacity planning, freeing IT teams from repetitive tasks and reducing the company’s carbon footprint. Providers reinvest energy savings in next-generation hardware and immersion cooling research programs, amplifying the collective benefit.

Rapid Elasticity: Scaling at the Speed ​​of Business

Sharing resources is only effective if their allocation follows business demand in real time. With elasticity, the infrastructure expands or reduces resources in minutes following the load. The system behaves like a rubber band: if more power or more instances are needed to deal with a traffic spike, it automatically scales in real time; when demand drops, the additional resources are deactivated just as quickly.

This flexibility seems to offer unlimited resources. In practice, a company no longer has to buy excess servers to cover peaks in demand (which would remain unused during periods of low activity), but can obtain additional capacity from the cloud only when needed. The economic advantage is considerable: large initial investments are avoided and only the capacity actually used during peak periods is paid for.

In the OPIT cloud automation lab, students simulate a streaming platform that creates new Kubernetes pods as viewers increase and deletes them when the audience drops: a concrete example of balancing user experience and cost control. The effect is twofold: the user does not suffer slowdowns and the company avoids tying up capital in underutilized servers.

Metered Service: Transparency and Cost Governance

The dynamic scale generated by elasticity requires precise visibility into consumption and expenses : without measurement there is no governance. Metering makes every second of CPU, every gigabyte and every API call visible. Every consumption parameter is tracked and made available in transparent reports.

This data enables pay-per-use pricing , i.e. charges proportional to actual usage. For the customer, this translates into variable costs: you only pay for the resources actually consumed. Transparency helps you plan your budget: thanks to real-time data, it is easier to optimize expenses, for example by turning off unused resources. This eliminates unnecessary fixed costs, encouraging efficient use of resources.

The systemic value of the five pillars

When the five pillars work together, the effect is multiplier . Self-service and elasticity enable rapid response to workload changes, increasing or decreasing resources in real time, and fuel continuous experimentation; ubiquitous access and pooling provide global scalability; measurement ensures economic and environmental sustainability.

It is no surprise that the Italian market will grow from $12.4 billion in 2025 to $31.7 billion in 2030 with a CAGR of 20.6%. Manufacturers and retailers are migrating mission-critical loads to cloud-native platforms , gaining real-time data insights and reducing time to value .

From the laboratory to the business strategy

From theory to practice: the NIST pillars become a compass for the digital transformation of companies and Public Administration. In the classroom, we start with concrete exercises – such as the stress test of a video platform – to demonstrate the real impact of the five pillars on performance, costs and environmental KPIs.

The same approach can guide CIOs and innovators: if processes, governance and culture embody self-service, ubiquity, pooling, elasticity and measurement, the organization is ready to capture the full value of the cloud. Otherwise, it is necessary to recalibrate the strategy by investing in training, pilot projects and partnerships with providers. The NIST pillars thus confirm themselves not only as a classification model, but as the toolbox with which to build data-driven and sustainable enterprises.

Read the full article below (in Italian):

Read the article
ChatGPT Action Figures & Responsible Artificial Intelligence
OPIT - Open Institute of Technology
OPIT - Open Institute of Technology
Jun 23, 2025 6 min read

You’ve probably seen two of the most recent popular social media trends. The first is creating and posting your personalized action figure version of yourself, complete with personalized accessories, from a yoga mat to your favorite musical instrument. There is also the Studio Ghibli trend, which creates an image of you in the style of a character from one of the animation studio’s popular films.

Both of these are possible thanks to OpenAI’s GPT-4o-powered image generator. But what are you risking when you upload a picture to generate this kind of content? More than you might imagine, according to Tom Vazdar, chair of cybersecurity at the Open Institute of Technology (OPIT), in a recent interview with Wired. Let’s take a closer look at the risks and how this issue ties into the issue of responsible artificial intelligence.

Uploading Your Image

To get a personalized image of yourself back from ChatGPT, you need to upload an actual photo, or potentially multiple images, and tell ChatGPT what you want. But in addition to using your image to generate content for you, OpenAI could also be using your willingly submitted image to help train its AI model. Vazdar, who is also CEO and AI & Cybersecurity Strategist at Riskoria and a board member for the Croatian AI Association, says that this kind of content is “a gold mine for training generative models,” but you have limited power over how that image is integrated into their training strategy.

Plus, you are uploading much more than just an image of yourself. Vazdar reminds us that we are handing over “an entire bundle of metadata.” This includes the EXIF data attached to the image, such as exactly when and where the photo was taken. And your photo may have more content in it than you imagine, with the background – including people, landmarks, and objects – also able to be tied to that time and place.

In addition to this, OpenAI also collects data about the device that you are using to engage with the platform, and, according to Vazdar, “There’s also behavioral data, such as what you typed, what kind of image you asked for, how you interacted with the interface and the frequency of those actions.”

After all that, OpenAI knows a lot about you, and soon, so could their AI model, because it is studying you.

How OpenAI Uses Your Data

OpenAI claims that they did not orchestrate these social media trends simply to get training data for their AI, and that’s almost certainly true. But they also aren’t denying that access to that freely uploaded data is a bonus. As Vazdar points out, “This trend, whether by design or a convenient opportunity, is providing the company with massive volumes of fresh, high-quality facial data from diverse age groups, ethnicities, and geographies.”

OpenAI isn’t the only company using your data to train its AI. Meta recently updated its privacy policy to allow the company to use your personal information on Meta-related services, such as Facebook, Instagram, and WhatsApp, to train its AI. While it is possible to opt-out, Meta isn’t advertising that fact or making it easy, which means that most users are sharing their data by default.

You can also control what happens with your data when using ChatGPT. Again, while not well publicized, you can use ChatGPT’s self-service tools to access, export, and delete your personal information, and opt out of having your content used to improve OpenAI’s model. Nevertheless, even if you choose these options, it is still worth it to strip data like location and time from images before uploading them and to consider the privacy of any images, including people and objects in the background, before sharing.

Are Data Protection Laws Keeping Up?

OpenAI and Meta need to provide these kinds of opt-outs due to data protection laws, such as GDPR in the EU and the UK. GDPR gives you the right to access or delete your data, and the use of biometric data requires your explicit consent. However, your photo only becomes biometric data when it is processed using a specific technical measure that allows for the unique identification of an individual.

But just because ChatGPT is not using this technology, doesn’t mean that ChatGPT can’t learn a lot about you from your images.

AI and Ethics Concerns

But you might wonder, “Isn’t it a good thing that AI is being trained using a diverse range of photos?” After all, there have been widespread reports in the past of AI struggling to recognize black faces because they have been trained mostly on white faces. Similarly, there have been reports of bias within AI due to the information it receives. Doesn’t sharing from a wide range of users help combat that? Yes, but there is so much more that could be done with that data without your knowledge or consent.

One of the biggest risks is that the data can be manipulated for marketing purposes, not just to get you to buy products, but also potentially to manipulate behavior. Take, for instance, the Cambridge Analytica scandal, which saw AI used to manipulate voters and the proliferation of deepfakes sharing false news.

Vazdar believes that AI should be used to promote human freedom and autonomy, not threaten it. It should be something that benefits humanity in the broadest possible sense, and not just those with the power to develop and profit from AI.

Responsible Artificial Intelligence

OPIT’s Master’s in Responsible AI combines technical expertise with a focus on the ethical implications of AI, diving into questions such as this one. Focusing on real-world applications, the course considers sustainable AI, environmental impact, ethical considerations, and social responsibility.

Completed over three or four 13-week terms, it starts with a foundation in technical artificial intelligence and then moves on to advanced AI applications. Students finish with a Capstone project, which sees them apply what they have learned to real-world problems.

Read the article