Read the full article below (in Italian):


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

Source:
- Agenda Digitale, published on June 16th, 2025
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
Read the full article below (in Italian):

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.
Have questions?
Visit our FAQ page or get in touch with us!
Write us at +39 335 576 0263
Get in touch at hello@opit.com
Talk to one of our Study Advisors
We are international
We can speak in: