Book Description
Written in an engaging and informal style, Data Structures Using Java facilitates a student's transition from simple programs in the first semester introductory programming course to more sophisticated, efficient, and effective programs in the second semester Data Structures course. Without delving too deeply into the details of Java, the author emphasizes the importance of effective organization and management of data and the importance of writing programs in a modern, objectoriented style. Designed to correlate with the curricular guidelines of the ACM/IEEE Computer Science Curriculum 2008, Data Structures Using Java introduces students to the more advanced concepts of writing programs but is still accessible to noncomputer science majors. Believing that learning how to design and write programs requires handson application of concepts, the author includes labs throughtout the text for students to immediately apply and test the newly learned material. The accessible writing style and handson approach of Data Structures Using Java, will provide your students with the skills necessary to design and use algorithms and data structures in their programming careers in an uncluttered environment, and efficient manner. Key Features: Content correlates to the learning objectives of the curricular guidelines of the 2008 ACM/IEEE Computer Science Curriculum. Avoids much of the advanced theory to provide students with the practical skills required to write algorithms and create data structures, in a oneterm CS2 course. Ideal for students who want to enter the programming profession immediately Includes lab exercises throughout for students to apply the newly learned concepts. Instructor Resources: PowerPoint Lecture Outlines Solutions to the chapter exercises Test Bank Source Code needed for the programming exercises.
Table of Contents
 Cover
 Title
 Copyright
 Dedication
 Contents
 Preface
 Chapter 1 Introduction
 Chapter 2 A Review of Java
 Chapter 3 Flat Files
 Chapter 4 Arrays and Linked Lists
 Chapter 5 Generics, Collections, and Testing

Chapter 6 Estimating Asymptotic Efficiency
 6.1 Analysis of Algorithms

6.2 Some Rigor
 6.2.1 An Apology for Some Audacity
 6.2.2 Basic Orders of Magnitude, and Some Intuition
 6.2.3 Constants Don’t Matter
 6.2.4 Constant Startup Costs Don’t Matter
 6.2.5 Big Oh Is Transitive
 6.2.6 All Logarithms Are the Same
 6.2.7 All Polynomials of the Same Degree Are the Same
 6.2.8 All Reasonable CostofWork Functions Go Off to Infinity
 6.3 Some More Rigor
 6.4 More Intuition—Common Asymptotics
 *6.5 Exponential Orders of Magnitude
 *6.6 Big Omega
 6.7 What Do We Count?
 6.8 Binary Divide and Conquer Is Optimal
 6.9 Summary
 6.10 Exercises
 Chapter 7 Stacks and Queues
 Chapter 8 Recursion
 Chapter 9 A First Look at Graphs
 Chapter 10 Trees

Chapter 11 Sorting
 11.1 WorstCase, BestCase, and AverageCase
 11.2 Bubblesort
 11.3 Insertionsort
 11.4 Improving Bubblesort
 11.5 Heapsort
 11.6 WorstCase, BestCase, and AverageCase (Again)
 11.7 Mergesort
 11.8 Quicksort
 11.9 Sorting Without Comparisons
 11.10 Experimental Results
 11.11 Auxiliary Space and Implementation Issues
 11.12 The Asymptotics of Sorting
 *11.13 Sorting in Parallel
 11.14 Summary
 11.15 Exercises

Chapter 12 Searching
 12.1 Associative Matching
 12.2 Indexing for Search
 12.3 Binary Search Trees
 12.4 Sophisticated Search Trees
 12.5 Hashing
 12.6 Random Numbers and Hash Functions: A Brief Digression
 12.7 The Java Collections Framework
 12.8 The Java HashSet
 12.9 The Java TreeMap
 12.10 The Java TreeSet, HashMap, and LinkedList
 12.11 Summary
 12.12 Exercises
 Chapter 13 Graphs
 Appendix A The Author’s Idiosyncrasies of Coding Style
 Appendix B File Utilities
 Appendix C Glossary
 Index
Product Information
 Title: Data Structures Using Java
 Author(s):
 Release date: January 2012
 Publisher(s): Jones & Bartlett Learning
 ISBN: 9781449628079