You are on page 1of 8

Faculty of Computer Science Institute of Business Administration

CSE 246

Data Structures and Algorithms

Lab Manual
Fall 2009

Prepared By:

Quratulain

Faculty of Computer Science, IBA

PREFACE

Objective 1. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. 2. More complex problem solving techniques using JAVA. 3. Data structures including classes, arrays, linked lists, stacks, queues, trees, and graphs. 4. Object-Oriented (OO) approaches are introduced and used throughout the text. Java constructs for supporting OO approaches (exceptions, abstract classes, interfaces) are introduced.

Faculty of Computer Science, IBA

GUIDELINES / RULES

Faculty of Computer Science, IBA

CONTENTS EXPERIMENT 1: Introduction to Data Structure 1.1: Definition of Data Structures 1.2: Purpose of Data Structures 1.3: Abstract Data types 1.4: Addition, subtraction, multiplication of binary numbers EXPERIMENT 2: The Stack 2.1: Definition of Stack 2.2: Primitive operation on Stack 2.3: Applications of stacks 2.4: Validation of arithmetic expressions 2.5: Postfix to infix conversions 2.6: Evaluation of postfix expressions EXPERIMENT 3: The Recursion 3.1: Definition of Recursion 3.2: Efficiency of Recursion 3.3: Properties of Recursive definition and algorithms 3.4: Recursive algorithm of Factorial function 3.5: Recursive algorithm of multiplication of two natural numbers 3.6: Binary search 3.7: Fibonacci sequences 3.8: Tower of Hanoi problem 3.9: Conversion of infix expression to postfix 3.10:Comparision of recursive and non-recursive algorithms

EXPERIMENT 4: Queues 4.1: Definition of Queues 4.2: Primitive operation on Queues 4.3: Applications of Queues 4.4: priority Queues

Faculty of Computer Science, IBA

4.5: Implementation of a Queue with basic operations EXPERIMENT 5: Link List 5.1: Define Link List 5.2: Array implementation of List 5.3: Linked implementation of Queues 5.4: Linked implementation of Stacks EXPERIMENT 6: Trees 6.1: Definition of binary trees 6.2: Properties of binary trees: Strickly binary tree, Complete binary tree, Almost complete binary tree 6.3: Applications of binary trees 6.4: Binary trees through linked and array representation 6.5: Recursive traversing of a binary tree : pre-order, post-order and in-order 6.6: An expression tree. And its properties 6.7: Threaded binary tree 6.8: Tree traversing 6.9: Implement a binary tree with father field 6.10: Implement Huffman algorithm EXPERIMENT 7: Sorting 7.1: Concept of sorting 7.2: Efficiency consideration 7.3: Bubble Sort, and its efficiency dicussion 7.4: Quick Sort and its efficiency dicussion 7.5: Selection Sort and its efficiency dicussion 7.6: Binary tree Sorts and its efficiency dicussion 7.7: Heap Sorts and its efficiency dicussion 7.8: Insertion Sorts and its efficiency dicussion 7.9: Radix Sort

Faculty of Computer Science, IBA

EXPERIMENT 8: Searching 8.1: Definition of search 8.2: Sequential search. Efficiency of sequential search 8.3: Index sequential search 8.4: Binary Search 8.5: Big-O notation 8.6: Binary Search tree and its efficiency 8.7: Balance tree (AVL tree) 8.8: Multiway search tree and its efficiency 8.9: B-tree and its efficiency 8.10: Hashing and its efficiency

Faculty of Computer Science, IBA

LAB # 01 Objective [Bulleted list] Procedure / Process [1] [Steps in bulleted list]

Faculty of Computer Science, IBA