**Unit-1 BCS301 DATA STRUCTURE**

for B.Tech. 2nd Year CS/DS/ AIML Students

Introduction: Basic Terminology

Elementary Data Organization

Built-in Data Types in C.

Algorithm: Efficiency of an Algorithm

Time and Space Complexity

Asymptotic notations: Big Oh, Big Theta and Big Omega

Time-Space trade-off. Abstract Data Types (ADT)

Arrays: Definition

Single and Multidimensional Arrays

Representation of Arrays: Row

Major Order

and Column Major Order

Derivation of Index Formulae for 1-D, 2-D, 3-D, and n-D Array Application of arrays

Sparse Matrices and their representations.

Linked Lists: Array Implementation and Pointer Implementation of Singly Linked Lists

Doubly Linked List

Circularly Linked List

Operations on a Linked List. Insertion

Deletion

Traversal

Polynomial Representation and Addition Subtraction & Multiplications of Single

variable & Two variables Polynomial.

### Unit-2 BCS301 DATA STRUCTURE

Stacks: Abstract Data Type

Primitive Stack operations: Push & Pop

Array and Linked

Implementation of Stack in C

Application of stack: Prefix and Postfix Expressions

Evaluation of postfix expression

Iteration and Recursion- Principles of Recursion

Tail

recursion

Removal of recursion Problem solving using iteration and recursion with

examples such as binary search

Fibonacci numbers

and Hanoi towers. Tradeoffs

between iteration and recursion.

Queues: Operations on Queue: Create, Add, Delete

Full and Empty

Circular queues

Array and linked implementation of queues in C

Dequeue and Priority Queue

### Unit-3 BCS301 DATA STRUCTURE

Searching: Concept of Searching

Sequential search

Index Sequential Search

Binary

Search. Concept of Hashing & Collision Resolution Techniques used in Hashing. Sorting:

Insertion Sort

Selection

Bubble Sort

Quick Sort

Merge Sort

Heap Sort and Radix Sort.

### Unit-4 BCS301 DATA STRUCTURE

Trees: Basic terminology used with Tree

Binary Trees

Binary Tree Representation: Array

Representation and Pointer(Linked List) Representation

Binary Search Tree

Strictly

Binary Tree

Complete Binary Tree. An Extended Binary Trees

Tree Traversal algorithms:

In order

Preorder and Postorder

Constructing Binary Tree from given Tree Traversal

Operation of Inspiration

Deletion

Searching & Modification of Data in Binary Search.

Threaded Binary trees

Traversing Threaded Binary trees. Huffman coding using Binary

Tree. Concept & Basic Operations for AVL Tree

B Tree & Binary Heaps

### Unit-5 BCS301 DATA STRUCTURE

Graphs: Terminology used with Graph

Data Structure for Graph Representations:

Adjacency Matrices

Adjacency List

Adjacency. Graph Traversal: Depth First Search and

Breadth-First Search

Connected Component

Spanning Trees

Minimum Cost Spanning

Trees: Prims and Kruskal algorithm.

Transitive Closure and Shortest Path Algorithm:

Warshal Algorithm and Dijikstra Algorithm.

### The Importance of Data Structures in BCS301 Data Structure

In the BCS301 Data Structure course, understanding data structures is fundamental to becoming a proficient computer scientist. Data structures are essential tools that organize, manage, and store data efficiently, enabling the development of effective algorithms and applications.

**Why Data Structures Are Important**

Data structures play a critical role in optimizing the performance of algorithms by determining how data is stored, accessed, and manipulated. In BCS301, you will learn that the choice of data structure can significantly impact the efficiency of operations such as searching, sorting, and updating data. For example, using a hash table can speed up search operations compared to a simple list, while a balanced tree structure can improve the efficiency of insertion and deletion operations.

**Use of Data Structures in Real-world Applications**

The principles learned in BCS301 Data Structure have practical applications in various domains. Efficient data structures are crucial for handling large volumes of data and ensuring that software applications run smoothly. For instance, databases rely on complex data structures like B-trees to manage large datasets and provide quick access to information. Similarly, network systems use data structures to manage routing tables and optimize data transmission.

**Foundational Knowledge for Advanced Topics**

Mastering data structures in BCS301 lays the groundwork for more advanced topics in computer science, such as algorithms, databases, and software engineering. A solid understanding of data structures allows you to design and implement algorithms more effectively and to tackle complex problems with confidence. It also helps optimize code performance, essential for developing scalable and efficient software.

**Enhancing Problem-Solving Skills**

Data structures are not just about storing data but about solving problems efficiently. In BCS301, you will learn how to choose the appropriate data structure based on the specific needs of an application, enhancing your problem-solving skills and ability to create optimized solutions.

In summary, BCS301 Data Structure equips you with crucial knowledge that impacts various aspects of computing, from application performance to advanced algorithm design, making it an indispensable part of your computer science education.