# Data Structure & Algorithm

AIMS

• To provide the knowledge & skill on data structures.

• To provide the knowledge & skill on writing simple algorithms.

SHORT DESCRIPTION

Data types, data structure and algorithm; Arrays, records, pointers and linked lists;

Stack, queue and recursion; Searching & sorting.

DETAIL DESCRIPTION

Theory :

DATA TYPES, DATA STRUCTURE AND ALGORITHM

1 Understand the idea of the data structure.

1.1 Define data & information.

1.2 State data types.

1.3 Define Memory Location, array, & list.

1.4 State the types of array, & list.

1.5 Define String.

1.6 Define data structure.

1.7 State the meaning of field, record and files.

1.8 Define stack & queue with example

1.9 Define trees , heaps, hashing function table & hashing table.

2 Understand the basic concept of Algorithm

2.1 State the characteristics of Algorithm

2.2 Define the pseudo code & algorithmic notations.

2.3 Describe the structured programming and flowcharts.

2.4 Describe the Complexity of Algorithm

2.5 Define Time-space Trade off.

ARRAYS, RECORDS, POINTERS AND LINKED LISTS.

3 Understand the concept of arrays, records and pointers.

3.1 Define linear array.

3.2 Write the algorithm for traversing linear arrays.

3.3 State the represent of linear array in Memory.

3.4 Write the algorithm for inserting and deleting elements into/from linear arrays.

3.5 Write the algorithm of matrix multiplication.

3.6 State the use of pointer arrays , Jagged array and records.

4 Understand the properties of the linked lists.

4.1 Define linked lists.

4.2 Describe the representation of linked lists in memory.

4.3 Write the algorithms to traverse a linked list.

4.4 Write the algorithms for searching a linked list.

4.5 Write the algorithms for inserting/deleting nodes into/from a linked list.

STACKS, QUEUES & RECURSION

5. Understand the Operation of Stack

5.1 State the meaning of the terms PUSH & POP.

5.2 Write the algorithm for adding or removing data into / from a Stack.

5.3 Describe the Polish and Reverse Polish Notation of arithmetic expression.

5.4 Describe the operation of Infix, Postfix & Prefix transformation.

5.5 Write the algorithms to transform Prefix expression into Prefix expression and vice versa.

6. Understand the Operation of Queue

6.1 Define Deques.

6.2 Describe Priority queues.

6.3 Write the algorithms for inserting/deleting data into/from queues.

7. Understand the Operation of Recursion.

7.1 Define Recursion

7.2 Explain the use of recursive subroutines.

7.3 Write the algorithms to compute N! and Fibonacci numbers by

recursive subroutines.

SEARCHING & SORTING

8 Understand the Operation of searching.

8.1 State the different techniques of searching.

8.2 Describe the linear and binary search algorithm.

8.3 Write the algorithms for linear & binary search.

8.4 Compare the complexity of linear & binary search algorithms.

9 Understand the Operation of sorting.

9.1 State the different techniques of Sorting.

9.2 Describe the technique of bubble sort, quick sort, heap sort, insertion

sort, selection sort and merge sort.

9.3 Write the algorithms for bubble sort, quick sort, heap sort, insertion

sort, selection sort and merge sort.

9.4 Compare the complexity of different sorting algorithms.

10. Understand the basics of Storing string

10.1 Define String

10.2 State the types of structures for storing strings.

10.3 Describe the Record – oriented , Fixed-Length storage procedure of strings.

10.4 State the advantages and disadvantages of record oriented, fixed-length storage .

10.5 Describe the process of variable length storage with fixed maximums.

10.6 Describe the process of linked storage structure.

Practical :

1. Write and Test a program for data insertion & Deletion in a Linear Array.

2. Write and Test a program for Multiplication of two Matrices

3. Write and Test a program for inserting/Deleting nodes into/from a Linked List.

4. Write and Test a program using PUSH and POP Operation in Stack.

5. Write and Test a program to convert an infix expression to postfix expression.

6. Write and Test a program for Data insertion and Deletion from a Queue.

7. Write and Test a program for N! and Fibonacci number using Recursion.

8. Write and Test a program to find out data using linear search and binary search.

9. Write and Test a program to arrange Data Ascending and Descending using Bubble Sort and Quick Sort.

REFERENCE BOOKS:

1. Data Structures

BY- Seymour Lipschutz (Schaum’s Outline Series)

2. Data Structure and Algorithm

By- Md. Mokter Hossain

Md. Masud Karim

Md. Moynul Hoque

Powered BY: BTEB