IT Program Design

302 - Elementary Data Structures

  • Module Overview
  • File Link: module-overview.pdf
  • This module will allow you to leverage what you learned about defining your own data types in order to prepare you to handle more involved data structures
  • Readings - Textbook
  • For this module, you should read the following sections of the textbook;
    • Chapter #12: Data Structures
  • Readings - Tutorial on HashTables
  • tutorial-hash-tables.pdf
  • For this module, you should read the following sections of the textbook;
    • Chapter #12: Data Structures
    In addition, you will find a mini-tutorial on hash tables supplementing the textbook, along with a Code::Block project folder for you to experiment with. This archive contains the source code for a simple hash table implementation. Study it after reading the tutorial in order to strengthen your understanding of this data structure
  • Apprenticeship - Linky the Linked List
  • File Links: a01.pdf a01-1-overview.mp4 a01-2-create.mp4
  • This exercise will allow us to leverage everything we have learned so far to implement a reusable linked list of integers. You will find the PDF instructions, an overview video, & the template project to start working with. The first function of our API is also implemented to allow us to build new linked lists.
  • Apprenticeship - Displaying the list
  • File Link: a01-3-display-iterative.mp4 a01-4-display-recursive.mp4
  • We implement two versions of the function meant to display our linked list's data. We start with an iterative one then move on to the recursive version. You will note that, when working on structurally recursive data structures such as linked lists, recursion leads actually to simpler algorithms. The key is often to match the tool to the task rather than argue endlessly about the abstract merits of various tools.
  • File Links: a01-9-adddelfront.mp4
  • Adding or removing elements from the front of the linked list does not warrant different implementations. It is performed in one shot just manipulating the pointer to the start of the linked list.
  • File Links: a02.pdf a02.mp4
  • This step will show you how you may use the linked list functions & data structures we just implemented to provide a queue API. Two levels of re-use.
  • File Links: a03.pdf a03.mp4
  • Same here with queues