B
RIDGE COURSES
L T P C
BX4001 DATA STRUCTURES AND ALGORITHMS
3 0 2 4
OBJECTIVES:
Be familiar with basic techniques of algorithm analysis.
Be exposed to the concept of ADTs.
Learn linear data structures-List, Stack and Queue.
Learn nonlinear data structures-Tree and Graphs.
Be exposed to sorting, searching and hashing algorithms
UNIT I INTRODUCTION 9 +6
Introduction - Abstract Data Types (ADT) – Arrays and its representation –Structures –
Fundamentals of algorithmic problem solving – Important problem types – Fundamentals of
the analysis of algorithm – analysis framework – Asymptotic notations, Properties, Recurrence
Relation.
Lab Experiments:
1. Develop a program to perform various array operations
2. Write a program to find running time complexity by considering each statement in the
program for a given set of numbers.
UNIT II LINEAR DATA STRUCTURES - STACK, QUEUE 9 +6
Stack ADT – Operations on Stack - Applications of stack – Infix to postfix conversion –
evaluation of expression - Queue ADT – Operations on Queue - Circular Queue - Applications of
Queue.
Lab Experiments:
1. Write a program to convert infix to postfix using stack data structure
2. Develop a program to perform circular queue operations
UNIT III LINEAR DATA STRUCTURES – LIST 9+6
List ADT - Array-based Implementation - Linked list implementation - Singly Linked Lists –
Circularly linked lists – Doubly Linked Lists - Applications of linked list – Polynomial Addition.
Lab Experiments:
1. Perform Polynomial Manipulation using Single Linked List.
2. Implement the various operations in double linked list.
UNIT IV SEARCHING, SORTING AND HASH TECHNIQUES 9 +6
Searching: Linear search – Binary Search- comparison of linear search and binary search,
Sorting algorithms: Insertion sort - Bubble sort – selection sort - Hashing: Hash Functions –
Separate Chaining – Open Addressing – Rehashing.
Lab Experiments:
Write a program to perform binary search
1. Write a program to sort a given set of numbers and compare among Bubble Sort,
Selection Sort and Insertion Sort with respect to computational complexity.
9 +6
UNIT V
NON LINEAR DATA STRUCTURES - TREES AND GRAPHS
Trees and its representation – left child right sibling data structures for general trees- Binary
Tree – Binary
tree traversals –- Binary Search Tree - Graphs and its representation - Graph Traversals - Depth-
first traversal – breadth-first traversal-Application of graphs.
Lab Experiments:
1. Write a program to delete a node from a given Binary search tree
2. Write a program to perform Graph Traversals
TOTAL : 75 PERIODS
COURSE OUTCOMES:
Upon Completion of the course, the students will be able to
analyze algorithms and determines their time complexity.
understand the concepts of data types, data structures and linear structures
apply data structures to solve various problems
apply different Sorting, Searching and Hashing algorithms.
understand non-linear data structures
REFERENCES
1. Anany Levitin “Introduction to the Design and Analysis of Algorithms” 3rd Edition, Pearson
Education
2. A.K. Sharma, “Data Structures using C”, 2nd Edition, Pearson Education Asia, 2013
3. E. Horowitz, Anderson-Freed and [Link], “Fundamentals of Data
structures in C”, 2ndEdition,University Press, 2007
4. [Link],” Data Structures using C”, Tata McGraw Hill 2015 Reprint
5. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C”, 2nd Edition, Pearson
Education, India, 2016
6. Jean Paul Tremblay and Paul G. Sorensen, “An Introduction to Data Structures with
Applications”, 2nd Edition, Tata McGraw Hill, New Delhi, 2017.
CO POs
PO1 PO2 PO3 PO4 PO5 PO6
2 1 2 2 2 2
1
2 1 2 2 2 2
2
2 1 2 2 2 2
3
2 1 2 2 2 2
4
2 1 2 2 2 2
5
2 1 2 2 2 2
Avg
BX4002 PROBLEM SOLVING AND PROGRAMMING IN C L T P C
3 0 2 4
COURSE OBJECTIVES:
To understand the basic concepts of problem solving approaches and to develop the
algorithms
Apply the techniques of structured (functional) decomposition to break a program into
smaller pieces and describe the mechanics of parameter passing.
To design, implements, test, and apply the basic C programming concepts
UNIT I INTRODUCTION TO COMPUTER PROBLEM SOLVING 9
Introduction – The Problem Solving aspect – Top down design – Implementation of algorithm
– Program Verification – The efficiency of algorithms – The analysis of algorithms –
Fundamental Algorithms
UNIT II PROGRAMMING AND ALGORITHMS 9
Programs and Programming – building blocks for simple programs -pseudo code
representation – flow charts - Programming Languages - compiler –Interpreter, Loader and
Linker - Program execution – Classification of Programming Language - Structured
Programming Concept – Illustrated Problems: Algorithm to check whether a given number is
Armstrong numberor not- Find factorial of a number
UNIT III BASICS OF ‘C’, INPUT / OUTPUT & CONTROL STATEMENTS 9 +10
Introduction- Identifier – Keywords - Variables – Constants – I/O Statements - Operators -
Initialization – Expressions – Expression Evaluation – Lvalues and Rvalues – Type Conversion
in C –Formatted input and output functions - Specifying Test Condition for Selection and
Iteration- Conditional Execution - and Selection – Iteration and Repetitive Execution- go to
Statement – Nested Loops- Continue and break statements.
Lab Experiments:
1. Write programs to get some input , perform some operation and display the
output using I/O statements
2. Write a program to execute some specific statements based on the test condition
3. Write programs to implement nested loop
UNIT IV ARRAYS, STRINGS, FUNCTIONS AND POINTERS 9 +10
Array – One dimensional Character Arrays- Multidimensional Arrays- Arrays of Strings – Two
dimensional character array – functions - parameter passing mechanism scope – storage
classes – recursion - comparing iteration and recursion- pointers – pointer operators - uses
of pointers- arrays and pointers – pointers and strings - pointer indirection pointers to
functions - Dynamic memory allocation.
Lab Experiments
1. Write a program in C to get the largest element of an array using the function.
2. Display all prime numbers between two intervals using functions.
3. Reverse a sentence using recursion.
4. Write a C program to concatenate two strings
9 +10
UNIT V USER-DEFINED DATATYPES & FILES
Structures – initialization - nested structures – structures and arrays – structures and
pointers - union– type def and enumeration types - bit fields - File Management in C – Files
and Streams – File handling functions – Sequential access file- Random access file –
Command line arguments.
Lab Experiments:
1. Write a C program to Store Student Information in Structure and Display it.
2. The annual examination is conducted for 10 students for five subjects.
3. Write a program to read the data from a file and determine the following: Total marks
obtained by each student; Topper of the class
COURSE OUTCOMES:
Able to design a computational solution for a given problem.
Able to break a problem into logical modules that can be solved (programmed).
Able to transform a problem solution into programs involving programming constructs.
To write programs using structures, strings, arrays, pointers and files for solving
complex computational problems.
Able to introduce modularity using functions and pointers which permit ad hoc
runtime polymorphism.
TOTAL : 75 PERIODS
CO-PO Mapping
CO POs
PO1 PO2 PO3 PO4 PO5 PO6
2 1 2 2 2 2
1
2 1 2 2 2 2
2
2 1 2 2 2 2
3
2 1 2 2 2 2
4
2 1 2 2 2 2
5
2 1 2 2 2 2
Avg