Search⌘ K
AI Features

Introduction

Understand the significance of data structures and algorithms in everyday technology use and software development. Learn about Java-based implementations, template classes, and real-world applications like file systems and social networks to build a strong foundation for further study in data structures.

Every computer science curriculum in the world includes a course on data structures and algorithms. Data structures are that important; they improve our quality of life and even save lives on a regular basis. Many multi-million and several multi-billion dollar companies have been built around data structures. This course contains executable programs in Java comprising templates, classes, and sample drivers to demonstrate the working of each data structure and related methods.

Real-world examples

If we stop to think about it, we realize that we interact with data structures constantly.

  • Open a file: File system data structures are used to locate the parts of that file on disk so they can be retrieved. This isn’t easy; disks contain hundreds of millions of blocks. The contents of our file could be stored on any one of them.
  • Look up a contact on our phone: A data structure is used to look up a phone number in our contact list based on partial information even before we finish dialing/typing. This isn’t easy; our phone may contain information about a lot of people–everyone we have ever contacted via phone or email—and our phone doesn’t have a very fast processor or a lot of memory.
  • Log in to our favourite social network: The network servers use our login information to look up our account information. This isn’t easy; the most popular social networks have hundreds of millions of active users.

  • Do a web search: The search engine uses data structures to find the web pages containing our search terms. This isn’t easy; there are over 8.5 billion web pages on the Internet, and each page contains a lot of potential search terms.

  • Phone emergency services: The emergency services network looks up our phone number in a data structure that maps phone numbers to addresses so that police cars, ambulances, or fire trucks can be sent there without delay. This is important; the person making the call may not be able to provide the exact address they are calling from and a delay can mean the difference between life or death.

Course contents

The goal of this course is to discuss a comprehensive list of data structures and their implementation for undergraduate computer science students and software engineers. Following is a list of topics at a broad level:

  • Array-based implementation of various linear data structures
  • Linked list-based implementation of linear and next-level data structures
  • Exploitation of linked list-based implementations for trees, graphs, and external storage-based data structures

You’ll see every chapter starting with an introduction to the topic, delving into its implementation discussing the expected optimization, with a brief note of other related implementations and concepts at the end. Please execute the code to see it working, and feel free to play with it to enhance your confidence.

Intended audience

This course covers the major topics discussed in an undergrad computer science curriculum offering the students and professionals to learn and refresh their conceptual knowledge and syntax. The template-based implementations become tricky to handle at times, which adds to the challenging nature of this subject.

Prerequisites

This is not a beginner-level course. It won’t explain the basic syntax of the programming language used in the course. If you see a piece of code that works but doesn’t look familiar, please consider it an opportunity to learn something new by utilizing your ability to explore.