3RD SEMESTER B.Tech.(CSE, IT) BCS-202 DATA AND FILE STRUCTURE – ( 3-0-0 )Cr.-3 Proposed Lecture Plan Lecture 1 : Motivation, Objective of studying the subject, overview of Syllabus Lecture 2 : Module I : Introduction to Data & file structures. Lecture 3 : Linear data Structures – Linked list and applications Lecture 4 : Stack and Queue Lecture 5 : Module II : Introduction to Non- Linear data structures Lecture 6 : General Trees , Binary Trees, Conversion of general tree to binary Lecture 7 : Binary Search Tree Lecture 8 : Red-Black trees Lecture 9 : Multi linked structures Lecture 10 : Heaps Lecture 11: Spanning Trees, Application of trees Lecture 12 : Module III Introduction to Sorting Lecture 13, 14 : Growth of function , ‘O’ notation, Complexity of algorithms, Lecture 15 : Internal sorting, Insertion sorting, Selection Sort Lecture 16 : Bubble Sort, Quick sort, Heap sort Lecture 17 : Radix sort, External sort, Multi way merge Lecture 18 : Module IV : Introduction to Searching, Sequential Search, Binary Search Lecture 19 : Search trees traversal Lecture 20 : Threaded Binary search trees
Lecture 21 : AVL Tree – concept and construction Lecture 22 : Balancing AVL trees - RR, LL, LR and RL Rotations Lecture 23 : Module V : Introduction to Hashing Lecture 24 : Hashing techniques, Hash function Lecture 25 : Address calculation techniques- common hashing functions Lecture 26 : Collision resolution Lecture 27 : Linear probing, quadratic probing Lecture 28 : Double hashing Lecture 29 : Bucket addressing Lecture 30 : Module VI- Introduction to file Structures Lecture 31 : External storage devices Lecture 32 : Records - Concepts and organization Lecture 33 : Sequential file – structures and processing Lecture 34 : Indexed sequential files – strictures and processing Lecture 35 : Direct files Lecture 36 : Multi Key access
INTRODUCTION DATA STRUCTURE: -Structural representation of data items in primary memory to do storage & retrieval operations efficiently. --FILE STRUCTURE: Representation of items in secondary memory. While designing data structure following perspectives to be looked after. i. ii. iii. Application(user) level: Way of modeling real-life data in specific context. Abstract(logical) level: Abstract collection of elements & operations. Implementation level: Representation of structure in programming language. Data structures are needed to solve real-world problems. But while choosing implementations for it, its necessary to recognize the efficiency in terms of TIME and SPACE. TYPES: i. ii. Simple: built from primitive data types like int, char & Boolean. eg: Array & Structure Compound: Combined in various ways to form complex structures. 1:Linear: Elements share adjacency relationship& form a sequence. Eg: Stack, Queue , Linked List 2: Non-Linear: Are multi-level data structure. eg: Tree, Graph. ABSTRACT DATA TYPE : Specifies the logical properties of data type or data structure. Refers to the mathematical concept that governs them. They are not concerned with the implementation details like space and time efficiency. They are defined by 3 components called Triple =(D,F,A) D=Set of domain F=Set of function A=Set of axioms / rules
LINKED LIST: A dynamic data structure. Linear collection of data items. Direction is associated with it. Logical link exits b/w items. Pointers acts as the logical link. Consists of nodes that has two fields. - Data field : info of the element. - Next field: next pointer containing the address of next node. TYPES OF LINKED LIST: i. Singly or chain: Single link b/w items. ii. Doubly: There are two links, forward and backward link. iii. Circular: The last node is again linked to the first node. These can be singly circular & doubly circular list. ADVANTAGES: Linked list use dynamic memory allocation thus allocating memory when program is initialised. List can grow and shrink as needed. Arrays follow static memory allocation .Hence there is wastage of space when less elements are declared. There is possibility of overflow too bcoz of fixed amount of storage. Nodes are stored incontiguously thus insertion and deletion operations are easily implemented. Linear data structures like stack and queues are easily implemented using linked list. DISADVANTAGES: Wastage of memory as pointers requirextra storage. Nodes are incontiguously stored thereby increasing time required to access individual elements. To access nth item arrays need a single operation while linked list need to pass through (n-1) items. Nodes must be read in order from beginning as they have inherent sequential access.