About the Tutorial
Data Structures are the programmatic way of storing data so that data can be used
efficiently. Almost every enterprise application uses various types of data structures in one
or the other way.
This tutorial will give you a great understanding on Data Structures needed to understand
the complexity of enterprise level applications and need of algorithms, and data structures.
Audience
This tutorial is designed for Computer Science graduates as well as Software Professionals
who are willing to learn data structures and algorithm programming in simple and easy
steps.
After completing this tutorial you will be at intermediate level of expertise from where you
can take yourself to higher level of expertise.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of C
programming language, text editor, and execution of programs, etc.
Copyright and Disclaimer
© Copyright 2016 by Tutorials Point (I) Pvt. Ltd.
All the content and graphics published in this e-book are the property of Tutorials Point (I)
Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish
any contents or a part of contents of this e-book in any manner without written consent
of the publisher.
We strive to update the contents of our website and tutorials as timely and as precisely as
possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt.
Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our
website or its contents including this tutorial. If you discover any errors on our website or
in this tutorial, please notify us at
i
, Data Structures & Algorithms
Compile & Execute Online
For most of the examples given in this tutorial you will find Try it option, so just make use
of this option to execute your programs on the spot and enjoy your learning.
Try the following example using the Try it option available at the top right corner of the
following sample code box −
#include <stdio.h>
int main(){
/* My first program in C */
printf("Hello, World! \n");
return 0;
}
ii
, Data Structures & Algorithms
Table of Contents
About the Tutorial ............................................................................................................................................ i
Audience ........................................................................................................................................................... i
Prerequisites ..................................................................................................................................................... i
Copyright and Disclaimer ................................................................................................................................. i
Compile & Execute Online ............................................................................................................................... ii
Table of Contents ........................................................................................................................................... iii
BASICS......................................................................................................................................... 1
1. Overview .................................................................................................................................................. 2
Characteristics of a Data Structure .................................................................................................................. 2
Need for Data Structure .................................................................................................................................. 2
Execution Time Cases ...................................................................................................................................... 3
Basic Terminology ........................................................................................................................................... 3
2. Environment Setup ................................................................................................................................... 4
Try it Option Online ......................................................................................................................................... 4
Local Environment Setup ................................................................................................................................. 4
Installation on UNIX/Linux ............................................................................................................................... 5
Installation on Mac OS..................................................................................................................................... 5
Installation on Windows .................................................................................................................................. 6
ALGORITHM ................................................................................................................................ 7
3. Algorithms ─ Basics ................................................................................................................................... 8
Characteristics of an Algorithm ....................................................................................................................... 8
How to Write an Algorithm? ........................................................................................................................... 9
Algorithm Analysis ......................................................................................................................................... 10
Algorithm Complexity .................................................................................................................................... 11
Space Complexity .......................................................................................................................................... 11
Time Complexity ............................................................................................................................................ 11
4. Asymptotic Analysis ................................................................................................................................ 12
Asymptotic Notations .................................................................................................................................... 12
Common Asymptotic Notations .................................................................................................................... 15
5. Greedy Algorithms .................................................................................................................................. 16
Counting Coins............................................................................................................................................... 16
6. Divide & Conquer .................................................................................................................................... 18
Divide/Break .................................................................................................................................................. 18
Conquer/Solve ............................................................................................................................................... 18
Merge/Combine ............................................................................................................................................ 19
7. Dynamic Programming............................................................................................................................ 20
iii