# Data structure and Algorithm in C++ -Computer Engineering |SCIKEEDA GUIDE

### Savitribai Phule Pune University Second Year of Computer Engineering (2015 Course)

### 210243: Data Structures and Algorithms

Prerequisites: - FPL I and FPL II

Course Objectives:

To understand the standard and abstract data representation methods.

To acquaint with the structural constraints and advantages in usage of the data.

To understand the memory requirement for various data structures.

To operate on the various structured data.

To understand various data searching and sorting methods with pros and cons.

To understand various algorithmic strategies to approach the problem solution.

Course Outcomes:
On completion of the course, student will be able to–

To discriminate the usage of various structures in approaching the problem solution.

To design the algorithms to solve the programming problems.

To use effective and efficient data structures in solving various Computer Engineering
domain problems.

To analyze the problems to apply suitable algorithm and data structure.

To use appropriate algorithmic strategy for better efficiency

Course Contents:

__Unit I -Introduction to Algorithm and Data Structures 09 Hours -__

Algorithms- Problem Solving, Introduction to Algorithms, Characteristics of algorithms,
Algorithm design tools: Pseudo code and flowchart, Analysis of Algorithms, Complexity of
algorithms- Space complexity, Time complexity, Asymptotic notation- Big-O, Theta and Omega,
standard measures of efficiency.

Data Structures- Data structure, Abstract Data Types (ADT), Concept of linear and Non-linear,
static and dynamic, persistent and ephemeral data structures, and relationship among data, data
structure, and algorithm, From Problem to Program.

Algorithmic Strategies- Introduction to algorithm design strategies- Divide and Conquer, and
Greedy strategy.

Recurrence relation - Recurrence Relation, Linear Recurrence Relations, With constant
Coefficients, Homogeneous Solutions. Solving recurrence relations

__Unit II Linear Data Structures Using Sequential Organization 09 Hours__

Sequential Organization, Linear Data Structure Using Sequential Organization, Array as an
Abstract Data Type, Memory Representation and Address Calculation, Inserting an element into
an array, Deleting an element, Multidimensional Arrays, Two-dimensional arrays, n- dimensional
arrays, Concept of Ordered List, Single Variable Polynomial, Representation using arrays,
Polynomial as array of structure, Polynomial addition, Polynomial multiplication, Sparse Matrix,
Sparse matrix representation, Sparse matrix addition, Transpose of sparse matrix, String
Manipulation Using Array. Case Study- Use of sparse matrix in Social Networks and Maps.

__Unit III Linked Lists 09 Hours__

Concept, Comparison of sequential and linked organizations, Primitive operations, Realization of
Linked Lists, Realization of linked list using arrays, Dynamic Memory Management, Linked list
using dynamic memory management, Linked List Abstract Data Type, Linked list operations,
Head pointer and header node,

Types of linked list- Linear and circular linked lists, Doubly
Linked List and operations, Circular Linked List, Singly circular linked list, Doubly circular linked
list, Polynomial Manipulations - Polynomial addition, Multiplication of two polynomials using
linked list.

Generalized Linked List (GLL) concept, representation of polynomial and sets using
GLL. Case Study- Garbage Collection.

Unit IV Stacks 09 Hours
Stacks-

Concept, Primitive operations, Stack Abstract Data Type, Representation of Stacks Using
Sequential Organization, stack operations, Multiple Stacks, Applications of Stack- Expression
Evaluation and Conversion, Polish notation and expression conversion, Need for prefix and postfix
expressions, Postfix expression evaluation, Linked Stack and Operations.

Recursion- concept, variants of recursion- direct, indirect, tail and tree, Backtracking
algorithmic strategy, use of stack in backtracking.

Case Study- 4 Queens problem, Androidmultiple tasks/multiple activities and back stack.

Unit V Queues 09 Hours

Concept,Queue as Abstract Data Type, Realization of Queues Using Arrays , Circular Queue,
Advantages of using circular queues, Multi-queues, Deque, Priority Queue, Array implementation
of priority queue, Linked Queue and operations.

Case study- Priority queue in bandwidth
management.

Unit VI Sorting and Searching 09 Hours

Searching- Search Techniques, Sequential search, variant of sequential search- sentinel search,
Binary search, Fibonacci search. Case Study- Use of Fibonacci search in non-uniform access
memory storage and in Optimization of Unimodal Functions.

Sorting- Types of sorting-Internal
and external sorting, General sort concepts-sort order, stability, efficiency, number of passes,
Sorting methods- Bubble sort, Insertion sort, Selection sort, Quick sort, Heap sort, Shell sort,
Bucket sort, Radix sort, Comparison of All Sorting Methods.

Case Study- Timsort as a hybrid
stable sorting algorithm.

####
Books:

Text:
1. Brassard & Bratley, ―Fundamentals of Algorithmics‖, Prentice Hall India/Pearson Education, ISBN
13-9788120311312. 2. Horowitz and Sahani, ―Fundamentals of Data Structures in C++‖, University Press, ISBN 10:
0716782928 ISBN 13: 9780716782926. 3. Goodrich, Tamassia, Goldwasser, ―Data Structures and Algorithms in C++‖, Wiley publication,
ISBN-978-81-265-1260-7

**References:**

1. R. Gillberg, B. Forouzn, ―Data Structures: A Pseudo code approach with C‖, Cenage Learning,
ISBN 9788131503140.

2. Horowitz, Sahani and Rajshekaran, ―Fundamentals of Computer Algorithms‖, University Press,
ISBN-13, 9788175152571.

3. Yedidyah Langsam, Moshe J Augenstein, Aron M Tenenbaum, ―Data Structures using C and C++‖,
Pearson Education, ISBN 81-317-0328-2.

4. A Michael Berman, ―Data Structures via C++: Objects by Evolution‖, Oxford University Press,
ISBN:0-19-510843-4.

5. M. Weiss, ―Data Structures and Algorithm Analysis in C++‖, 2nd edition, Pearson Education, 2002,ISBN-81-7808-670-0.

## 0 Comments

Thank You For your Query !! Please Contact Us via Contact Form For any kind of Information.