CS 3240 DATA STRUCTURES AND ALGORITHMS (4) 2005 Catalog Description: Definition, design, implementation of abstract data structures, including stacks, queues, generalized lists; implementation of contiguous or linked structures. Structures include tables and hashing, trees, graphs. Algorithms for manipulating structures, searching, sorting; introduction to the analysis of these algorithms. Prerequisite: Math 2150, CS 2360, CS 2430 Abstract data types (ADT) Lists: insertion/deletion of nodes, ordered lists, header nodes cursor lists, cover if desired Stacks: postfix expressions Queues: circular queues Trees: general trees, binary trees, binary search trees recursive traversals (preorder, inorder, postorder) expression trees B-trees, cover if desired AVL trees, cover if desired breadth-first search using queues, cover if desired Priority Queues: min/max heaps Hashing: open, closed, rehashing, linear and quadratic probing Searching: binary search Sorting: bubblesort, heapsort, quicksort, mergesort Graphs: simple introduction, cover if time Analysis: simple analysis of average and worst-case Big-Oh Implementation Issues: array-based and pointer-based structures recursion, pointers, debugging, memory management, (advanced) object oriented techniques. Texts: Weiss: Data Structures & Algorithm Analysis Horowitz, Sahni, Mehta: Fundamentals of Data Structures Aho, Hopcroft, Ullman: Data Structutes and Algorithms Thomas Standish, Data Structures, Algorithms & Software Principles in C Shaffer, Practical Intro. to Data Structures & Algor. Analysis C++, Prentice Hall Dale, C++ Plus Data Structures, Jones & Bartlett ----------