# Data Structures and Algorithms

This topic is probably where you’re going to spend most of your time on this site. Especially if you’re interviewing. Understanding your CS data structures and algorithms is absolutely essential!

## Arrays and Linked Lists

The building block data structures from which so many others are built. Arrays are incredibly simple - but how much do you know about them? Can you build a linked list from scratch?

*20 minutes*

## Stacks, Queues and Hash Tables

You can build all kinds of things using the flexibility of a linked list. In this video we'll get to know a few of the more common data structures that you use every day.

*6 minutes*

## Trees, Binary Trees and Graphs

The bread and butter of technical interview questions. If you're going for a job at Google, Microsoft, Amazon or Facebook - you can be almost guaranteed to be asked a question that used a binary tree of some kind.

*7 minutes*

## Basic Sorting Algorithms

You will likely *never* need to implement a sorting algorithm - but understanding how they work could come in handy at some point. Interviews and workarounds for framework problems come to mind.

*13 minutes*

## DFS, BFS and Binary Tree Search

You now know all about trees and graphs - but how do you use them? With search and traversal algorithms of course! This is the next part you'll need to know when you're asked a traversal question in an interview. And you will be.

*14 minutes*

## Dynamic Programming and Fibonnaci

Dynamic programming gives us a way to elegantly create algorithms for various problems and can greatly improve the way you solve problems in your daily work. It can also help you ace an interview.

*9 minutes*

## Calculating Prime Numbers

The use of prime numbers is everywhere in computer science... in fact you're using them right now to connect to this website, read your email and send text messages.

*5 minutes*

## Graph Traversal: Bellman Ford

How can you traverse a graph ensuring you take the route with the lowest cost? The Bellman-Ford algorithm will answer this question.

*8 minutes*

## Graph Traversal: Dijkstra

Bellman-Ford works well but it takes too long and your graph can't have cycles. Dijkstra solved this problem with an elegant solution.

*8 minutes*