Data Structures

Section A: Introduction to Data Structures

Week 1 - Week 4

Section A introduces the concept of data structures and absract data types and indicates how to choose the right one. It also introduces algorithms and how to design and develop them including: stepwise refinement, algorithm analysis, and the complexity of algorithm.

We will also cover arrays, searching and sorting.

Section B: Pointers

Week 5 - Week 6

Section B introduces pointers including pointer variables, pointers and arrays, arrays of pointers, pointers to structures. We will cover how to use pointers to construct linked lists including circular linked lists, and doubly linked. We will cover the linked list operations: traversal, searching, insertion, deletion, and sorting. We will discuss applications of linked lists.

Section C: Stacks and Queues

Week 7 - Week 9

Section C introduces stacks and queues. We will cover the implementations of stacks, including their two operations, "push" and "pop" using both arrays and linked lists. We will describe how to use stacks to evaluate expressions. We will also discuss the array and linked list implementations of queues including the queue operations "insert" and "delete". Applications covered include priority queues, deques, circular queues, and the implementation of sparce matrices using queues.

Section D: Non-linear structures

Week 10 - Week 13

Section D introduces trees and graphs.

Syllabus

Data Structures follows Structured programming. In this class, you will graduate from a beginning programmer to a programmer with all of the programming skills needed to develop any program. There is still much to learn, and you will need much more practice before you are a skilled programmer, but once you complete this course you will know the basics of programming.

In this class, you will learn about data and algorithms. Efficient algorithms are the important part of the class. They allow support programs that run quickly. Without them, computers would involve even more waiting than they do now. Data structures are ways of storing data so that efficient algorithms can use it.

Install Cygwin

You will need a way to use Unix. If you have not set up your laptop to run Linux you should download Cygwin. A like to step by step instructions can be reached through the link in the title. If you have installed Linux (We recommend Ubuntu 14.04 becaue it is the version run the the lab, so you can get the most help with it.), you need not both unless you are interested. It does not take up a lot of disk space.

When you install Cygwin you will need to choose the following packages to install for this class.

  • nano
  • make
  • gcc
  • git
  • CUnit
  • unzip
  • wget

Cygwin is the set of programs that make up user level access to Unix running as windows program. You can run the bash shell as a windows program. We have found it is the easiest way to get a Unix terminal on Windows here at Manav Rachna University.

Inspirational Articles