Course Teacher
আদিবা মাহজ ্ াবীন দনতু
Adiba Mahjabin Nitu
Professor
Department of Computer Science and Engineering (CSE)
Cell: 01716407820
E-mail:
[email protected] CSE 203 1
Theory Course
CSE 203: Data Structures
Credit: 3.00 3 Hours/Week
Introduction: Basic terminology of elementary data organization, data structures, data structures
operations, algorithms, mathematical notation and functions, algorithmic notation, control structures,
complexity of algorithms, asymptotic notations, sub algorithms, variables, data types, etc. Linear
Data Structures: Arrays, records, and pointers; Linked lists; Stacks; Queues; Recursion. Non-linear
Data Structures: Binary tree representation using array and pointers, traversal of Binary Tree,
Binary Search Tree representation, basic operations on BST, Heap, Min-heap, max-heap, Fibonacci-
heap, applications-priority queue, heap sort, Segmented Tree, General Tree Implementation,
application of general tree- file system, AVL tree (rotation, insertion), Graph, Graph representation,
basic operations on graph, traversing a graph: breadth-first search (BFS), depth-first search (DFS),
graph-bicoloring. String Processing: Basic terminology, storing strings, character data type, string
operations, word processing, pattern matching algorithms, etc. Sorting and Searching: Introduction,
sorting: Insertion sort, selection sort, Merging, Merge-sort, Radix sort, Searching and Data
Modification, Hashing, etc., in detail. Data Structure with C/C++/Java: Implementing data
structures and their operations with C, C++ using STL, and Java.
CSE 203 2
Sessional Course
CSE 204: Data Structures Sessional
Credit: 1.50 3 Hours/Week
Laboratory works based on CSE 203.
Reference Books (Theory+Sessional):
1. Seymour Lipchutz, Data Structures with C (Indian Adapted Edition), Tata McGraw-Hill Education Private Limited, 2011.
2. Narasimha Karumanchi, Data Structures and Algorithms Made Easy: Data Structure and Algorithmic Puzzles, CreateSpace
Independent Publishing Platform, 2nd
edition, 2011.
3. Noel Kalicharan, Data Structures In C, CreateSpace Independent Publishing Platform, 1st edition, 2008.
4. Ford, Topp. Data Structures with C++ using STL, 2nd edition, Prentice Hall, 2002.
5. Ford, Topp. Data Structures with Java, 1st edition, Prentice Hall, 2005
CSE 203 3
Introduction
A few basic terminology:
• Data: Values, set of values, or a single unit of vales. Example: 123456, Md.
Karim , “HSTU”, F. Singular: Datum.
• Entity: Something that has certain properties/attributes. Example:
student name, ID, level, semester.
• Entity set: Entities with similar attributes. Example: students of CSE degree.
• Information: Meaningful or processed data. Data with given attribute. Example:
Student name Md. Karim, Sex M.
• Record:
• File:
• Structure:
All the information of the lectures (CSE 203) are collected from books, research articles, and online resources.
CSE 203 4
Introduction
Data Structure:
• Data are organized to reflect the relationship among them.
• A way of organizing, storing, processing, accessing, updating, and retrieving
data in a specialized format.
• A logical (visualization) or mathematical model of a particular organization of
data.
• The choice of particular data model depends on two considerations:
It must be rich enough in structure to mirror the actual relationship of the data in real
world.
It should be simple enough that one can effectively process the data when necessary.
• The simplest data structure: ?
CSE 203 5
Importance of Data Structure
Why should we learn Data Structures?
• Data structures and algorithms are fundamental concepts in CSE.
• Applied everywhere in programming.
• Backbone of any application a developer develops.
• Organize data efficiently and easily.
• It helps to manage memory efficiently so that the program runs faster.
• Improves problem solving skills.
CSE 203 6
Algorithm
• A well defined set/collection of steps to solve a particular problem/perform
a task.
• Two important measures: time and space for the efficiency of an algorithm.
• Pseudo code or flowchart.
• Complexity of an algorithm is a function that gives the running time and/or
space based on input size.
A function that calculates the amount of resources (time, space) it requires to solve a
problem (algorithm).
• Each algorithm involves a particular data structure.
CSE 203 7
Data Structure Operation
• Traversing: Accessing/visiting each element of a list/data structure.
• Searching: A way to find a specific element/key value in a list/data
structure.
Successful: if the element is found.
Not successful: if the element is not found.
• Inserting: Adding an element into a list.
• Deleting: Removing an element from a list.
• Sorting: Arranging the elements of a list in an order.
• Merging: Combining two sorted lists into a single sorted list.
CSE 203 8
Types of Data Structure
Linear data structure
• Data are organized in a sequential/indexed way.
• Each element is attached to its previous and next adjacent element.
• Single level is involved.
• All data can be traversed in a single run.
• Easy to handle and implement as computer memory is linear.
• Useful for simple data storage and manipulation, software development.
• Example: array, linked list, stack, queue.
Non-linear data structure
• Data are not organized sequentially or linearly.
• Hierarchical order in maintained.
• Multiple levels are involved.
• No single run traverse.
• Comparatively difficult.
• Use computer memory efficiently.
• Useful for complex hierarchy: social networks, file systems, or computer networks.
• Example: tree, graph.
CSE 203 9