Here’s what we’ll cover:
A null variable means that we’re pointing at something that doesn’t exist or which is invalid. This is often intentionally implemented, in order, for example, to mark an invalid flow in our algorithm.
Symbols are used to create unique identifiers for objects but can be used as a way to enable different opaque data types or to serve as a unique identifier in general.
Queues are FIFO (first in, first out) while stacks are LIFO (last in, first out). You can think of a queue as a line of people going into a store, where the first one in the line gets into the store, and a stack as a stack of files, with the last one placed on the stack being the first one out.
We can work with arrays to define a list of data types, and then index and filter for the first one (by definition, arrays are zero-indexed, meaning a slice of  for the index will return the first item and so on).
Linked nodes include many different types of array-like objects since they store datatypes in sequences. The critical difference is that instead of pointing to indexes as we saw with our array example of when a datatype was placed in an array, linked nodes hold pointers to other objects. So, in order to follow the linked nodes, you’ll have to transverse the different list objects using each one as a reference to go to the next one. You start at the head and then go all the way to the tail instead of calling a master index.
There are multiple types, from singly-linked lists, doubly-linked lists (which links the tail to the head, allowing us to travel back and forth through the different data types) to trees and graphs. Trees connect parents to multiple child nodes as opposed to linked lists, which connects one parent with one child. Graphs allow for the connection of multiple parent nodes to multiple child nodes. Here is an implementation of a linked list.
Note at the end that when we try passing a string datatype to this algorithm, it results in an NaN datatype (not a number).
A common problem with programming algorithms is how to sort through arrays of values so that they come in some logical order, say, from the lowest to the highest integer in an array of numbers. QuickSort is a sorting algorithm that can help with this. By employing a pivot and going through subsets of an array, we can slowly sort every element that is smaller than the pivot to its left.
Now that we’ve sorted an array, another common class of programming algorithms tries to solve the problem of searching if a value exists in an array. Using jump search, we aim to chunk out subsets of the array such that it’ll be more efficient than binary search at filtering through already-sorted arrays. We look for an interval of known greater and lesser elements where our search value might be.
Springboard’s software engineering online bootcamps are designed to get you a job within months of completion.
Ready to switch careers to software engineering?
Springboard offers a comprehensive software engineering bootcamp. You’ll work with a one-on-one mentor to learn key aspects of front-end web development, back-end web development, databases, and data structures and algorithms. Modules include learning resources, practice exercises, projects, and career-related coursework.
Check out Springboard's Software Engineering Career Track to see if you qualify.
Not quite ready to dive into a software engineering bootcamp?
Download our software engineering salary guide
This 21-page guide breaks down the software engineering career path and how to optimize salary figures.
Ready to learn more?
Browse our Career Tracks and find the perfect fit