Data scientists and data structure developers are being sought after by companies big and small alike. With big data making an inroad on many fronts, data scientists are in high demand! If you’re looking for a job in database management, data analytics, or similar fields, you need to have a good grip on data structures, mathematics and programming.
We’ve prepared a list of questions you could be asked at an interview dealing with data structures. If you have little to no experience under your belt, it’s a good idea to go through a couple of courses on database management and basic data analytics, before going for your interview:
Question: What is a data structure?
A data structure is a mathematical way of storing and organizing data. Data elements are stored on the basis of their relationship to each other. This makes it easy to retrieve and perform operations on the data. Operations are performed on the data by using highly optimised search, hash and other algorithms.
Question: Explain the types of data structures
There are two basic types of data structures: linear and nonlinear. Linear data structures are organized in a way similar to the way computer memory is organized. Linear data structures store elements one after the other, in a linear fashion. Only one element of the data can be traversed at a time. Imagine a stack of books placed on a shelf. A book will be placed between two other books, but not three books- a book will only have a relationship to two other books at the most at one time. Linear data elements are stored in a similar way.
Non linear data structures are stored in a sequential way. The data elements in the non linear data structures may have relationships with one or more elements at the same time. Manipulating non linear data structures is more difficult than manipulating linear data structures.
Question: What is a linked list?
A linked list is a set of linear elements where each element has an index or a pointer that indicates the next element. An element of a linked list is referred to as a node. A node will store data as well as a pointer/index about the next node in the set. There are different types of linked lists. For example, a circular linked list is a list where the last element of the list points to the first element of the list, forming an unbroken chain of data. A double linked list is a list in which every node stores the index of the node on either side of it.
Question: What is a queue?
A queue is a collection of data that follows the FIFO (First in First Out) principle. It is a type of a linear data structure. Elements in a queue are removed only from the front, while new elements are added only at the back of a queue. Imagine a queue of people in front of movie theater for tickets. People can’t skip to the front for tickets – they have to join the back of the queue. People leave the queue only after they get their tickets, from the front. This is a great example of a queue in data structures. The two operations performed on a queue are enqueue (adding data elements) and dequeue(removing data elements).
A priority queue is a queue in which every element in the queue is assigned a priority and operations are performed on it according to this priority.
Question: What is a stack?
A stack is a collection of data that follows the LIFO (Last in First Out) principle. It is a recursive data structure. Elements in a stack are removed from the back and added at the back. Imagine a stack of heavy books balanced on a table. You can’t add books at the bottom of the stack of books or pull out books from the middle of the stack – the stack might collapse. This is exactly how stacks in programming work. Stacks let you reverse words. For example, let’s take the word dog. There are three letters to the word “d”, “o”, “g”. “D” will be input first and falls to the bottom of the stack, “o” will be at the middle and “g” at the top. Now just pop out the letters and your word has been reversed.
Question: How Do You Reverse a String?
The answer to this question depends on what programming language you’re trying for. For example, if you’re a Java programmer the interviewer may not allow you to use the reverse() method. You can use recursion in Java to reverse a string. If you understand stacks, you should have no problem with the theory that deals with reversing a string.
Question: How Do You Search for a Particular Element in a Data Structure (Array)?
There are two ways to search a data structure: using sequential search and binary search. You can implement other methods of searching, depending on the programming language, but sequential searches and binary searches are the most common. Sequential searching involves traversing each and every element of the data for a match, from start to finish. If we have an array that is storing the alphabet and we need to search for the element “z”, a sequential search will start from “a” all the way to “z”. This type of search may be time consuming.
A binary search, on the other hand, directly heads to the middle of the data structure. If the element is found there, it will return it. Otherwise (after checking the key value), it will jump to the middle of the first part of the data structure or the middle of the second part until the element has been found.
Keep in Mind
When going for an interview, always remember that the technical part of it, is just that – a part. You will also be judged for your presence of mind, your body language, the way you answer questions. Remember to prepare well for intangible part of the interview. If it’s been a while since your last job search, take a minute to step back and figure what it really takes to get hired!