Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
100%
(1)
100% found this document useful (1 vote)
580 views
929 pages
EDA - Weiss - Data Structures and Problem Solving Using Java
Uploaded by
Francisco Javier Peña Rubio
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download
Save
Save EDA - Weiss - Data Structures and Problem Solving ... For Later
Share
100%
100% found this document useful, undefined
0%
, undefined
Print
Embed
Report
100%
(1)
100% found this document useful (1 vote)
580 views
929 pages
EDA - Weiss - Data Structures and Problem Solving Using Java
Uploaded by
Francisco Javier Peña Rubio
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Carousel Previous
Carousel Next
Download
Save
Save EDA - Weiss - Data Structures and Problem Solving ... For Later
Share
100%
100% found this document useful, undefined
0%
, undefined
Print
Embed
Report
Download
Save EDA - Weiss - Data Structures and Problem Solving ... For Later
You are on page 1
/ 929
Search
Fullscreen
Data Structures & f Problem Solving Using Java mark allen weiss florida international university Boston San Francisco New York Sydney Tokyo Singapore Madrid inich Paris CapeTown Hong Kong Montreal London Mexico CitySenior Acquisitions Editor Michael Hirsch Production Supervisor Marilyn Lloyd Production and Editorial Services Gillian Hall and Juliet Silveri Copyeditor Penelope Hull Proofreader Holly McLean-Aldis Marketing Manager Michelle Brown Marketing Assistant Jake Zavracky Cover Design Supervisor Joyce Cosentino Wells, CoverDesign Night & Day Design Prepress Buyer Caroline Fell Cover Image © 2004 Photodise Access the latest information about Addison-Wesley titles from our World Wide Web site: hutp://www.aw-be.com/computing Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks, Where those designations appear in this book, and Addison. Wesley was aware of a trademark claim, the designations have been printed in initial caps or all caps, ‘The programs and applications presented in this book have been included for their instruc- tional value. They have been tested with care, but are not guaranteed for any particular purpose. The publisher does not offer any warranties or representations, nor does it accept any liabilities with respect to the programs or applications. Library of Congress Cataloging-in-Publication Data Weiss, Mark Allen. Data structures and problem solving using Java / Mark Allen Weiss.-- 3rd ed p.cm Includes bibliographical references and index. ISBN 0-321-32213-4 1. Java (Computer program language) 2. Data structures (Computer science) 3, Problem solving--Data processing. I. Title. QA76.73.538W45 2005 005.13'3~de22 2004031048 For information on obtaining permission for use of material in this work, please submit a written request to Pearson Education, Inc., Rights and Contracts Department, 75 Arlington Street, Suite 300, Boston, MA 021 16 or fax your request to (617) 848-7047. Copyright © 2006 by Pearson Education, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval syst ransmitted, in any form or by any means, electronic, mechanical, photocopy ing, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America, 12345678910- HT-070605To the love of my life, Jill.preface T.. book is designed for a two-semester sequence in computer science, beginning with what is typically known as Data Structures and continuing with advanced data structures and algorithm analysis. It is appropriate for the courses from both the two-course and three-course sequences in “B.1 Intro- ductory Tracks,” as outlined in the final report of the Computing Curricula 2001 project (CC2001)—a joint undertaking of the ACM and the IEEE. The content of the Data Structures course has been evolving for some time, Although there is some general consensus concerning topic coverage, considerable disagreement still exists over the details. One uniformly accepted topic is principles of software development, most notably the con- cepts of encapsulation and information hiding. Algorithmically, all Data Structures courses tend to include an introduction to running-time anal; recursion, basic sorting algorithms, and elementary data structures. Many uni- versities offer an advanced course that covers topics in data structures, algo- rithms, and running-time analysis at a higher level. The material in this text has been designed for use in both levels of courses, thus eliminating the need to purchase a second textbook. Although the most passionate debates in Data Structures revolve around the choice of a programming language, other fundamental choices need to be made: Whether to introduce object-oriented design or object-based design early = The level of mathematical rigorpreface The appropriate balance between the implementation of data struc- tures and their use Programming details related to the language chosen (for instance, should GUIs be used early) My goal in writing this text was to provide a practical introduction to data structures and algorithms from the viewpoint of abstract thinking and prob- lem solving. I tried to cover all the important details concerning the data structures, their analyses, and their Java implementations, while staying away from data structures that are theoretically interesting but not widely used. It is impossible to cover all the different data structures, including their uses and the analysis, described in this text in a single course. So I designed the text- book to allow instructors flexibility in topic coverage. The instructor will need to decide on an appropriate balance between practice and theory and then choose the topics that best fit the course. As I discuss later in this Preface, I organized the text to minimize dependencies among the various chapters. a unique approach My basic premise is that software development tools in all languages come with large libraries, and many data structures are part of these libraries. I envision an eventual shift in emphasis of data structures courses from implementation to use. In this book I take a unique approach by separating the data structures into their specification and subsequent implementation and taking advantage of an already existing data structures library, the Java Collections API. A subset of the Collections API suitable for most applications is discussed ina single chapter (Chapter 6) in Part Two. Part Two also covers basic analy- sis techniques, recursion, and sorting. Part Three contains a host of applica- tions that use the Collections API's data structures. Implementation of the Collections API is not shown until Part Four, once the data structures have already been used. Because the Collections API is part of Java students can design large projects early on, using existing software components. Despite the central use of the Collections API in this text, it is neither a book on the Collections API nor a primer on implementing the Collections API specifically; it remains a book that emphasizes data structures and basic problem-solving techniques. Of course, the general techniques used in the design of data structures are applicable to the implementation of the Collec- tions API, so several chapters in Part Four include Collections API implemen-tations, However, instructors can choose the simpler implementations in Part Four that do not discuss the Collections API protocol. Chapter 6, which pre- sents the Collections API, is essential to understanding the code in Part Three. attempted to use only the basic parts of the Collections API. Many instructors will prefer a more traditional approach in which each data structure is defined, implemented, and then used. Because there is no dependency between material in Parts Three and Four, a traditional course can easily be taught from this book prerequisites Students using this book should have knowledge of either an object-oriented or procedural programming language. Knowledge of basic features, including primitive data types, operators, control structures, functions (methods), and input and output (but not necessarily arrays and classes) is assumed. Students who have taken a first course using C-++ or Java may find the first four chapters “light” reading in some places. However, other parts are definitely “heavy” with Java details that may not have been covered in introductory courses. Students who have had a first course in another language should begin at Chapter 1 and proceed slowly. If a student would like to use a Java reference book as well, some recommendations are given in Chapter 1, pages 3-25 Knowledge of discrete math is helpful but is not an absolute prerequisite. Several mathematical proofs are presented, but the more complex proofs are preceded by a brief math review. Chapters 7 and 19-24 require some degree of mathematical sophistication, The instructor may easily elect to skip mathe- matical aspects of the proofs by presenting only the results. All proofs in the text are clearly marked and are separate from the body of the text. summary of changes in the third edition 1. The code was completely rewritten to use generics, which were introduced in Java 5. The code also makes significant use of the enhanced for loop and autoboxing. 2. In Java 5, the priority queue is now part of the standard Collections API. This change is reflected in the discussion in Chapter 21 and in some of the code in Part Three. preface
You might also like
Communication Technology
PDF
100% (1)
Communication Technology
3 pages
Data Structures and Abstractions With Java 5th Edition (Ebook PDF) Download
PDF
100% (2)
Data Structures and Abstractions With Java 5th Edition (Ebook PDF) Download
61 pages
Ebook Advanced Data Structuresand Algorithms
PDF
No ratings yet
Ebook Advanced Data Structuresand Algorithms
205 pages
Cracking The Coding Interview 6th Edition PDF
PDF
No ratings yet
Cracking The Coding Interview 6th Edition PDF
4 pages
(Ebook PDF) Data Structures and Problem Solving Using Java 4th Editionpdf Download
PDF
100% (7)
(Ebook PDF) Data Structures and Problem Solving Using Java 4th Editionpdf Download
53 pages
Big Data - Midsem
PDF
No ratings yet
Big Data - Midsem
526 pages
Pathfinder Python - Concept To Creation
PDF
No ratings yet
Pathfinder Python - Concept To Creation
40 pages
(Ebook PDF) Starting Out With Java Early Objects 6th Edition by Tony Gaddis PDF Download
PDF
100% (7)
(Ebook PDF) Starting Out With Java Early Objects 6th Edition by Tony Gaddis PDF Download
51 pages
15890-Modern Processor Design
PDF
50% (4)
15890-Modern Processor Design
331 pages
Data Structures & Algorithm in Java - Robert Lafore - PPT
PDF
No ratings yet
Data Structures & Algorithm in Java - Robert Lafore - PPT
682 pages
Learn Julia Programming
PDF
100% (2)
Learn Julia Programming
307 pages
Logical and Relational Learning PDF
PDF
100% (1)
Logical and Relational Learning PDF
403 pages
Express Algebra II
PDF
No ratings yet
Express Algebra II
156 pages
Michael J. Folk, Bill Zoellick, Greg Riccardi - File Structures - An Object-Oriented Approach With C++-Addison-Wesley (1998)
PDF
No ratings yet
Michael J. Folk, Bill Zoellick, Greg Riccardi - File Structures - An Object-Oriented Approach With C++-Addison-Wesley (1998)
749 pages
Golang Course Syllabus cd11970
PDF
No ratings yet
Golang Course Syllabus cd11970
8 pages
Yet Another Haskell Tutorial
PDF
100% (10)
Yet Another Haskell Tutorial
192 pages
Knapsack Problems
PDF
100% (3)
Knapsack Problems
306 pages
JaJa Parallel - Algorithms Intro
PDF
50% (2)
JaJa Parallel - Algorithms Intro
45 pages
Data Structures and The Java Collections Framework 3rd Edition
PDF
No ratings yet
Data Structures and The Java Collections Framework 3rd Edition
760 pages
Foundations of Discrete Mathematics With Algorithms and Programming by Sriraman Sridharan, R. Balakrishnan
PDF
No ratings yet
Foundations of Discrete Mathematics With Algorithms and Programming by Sriraman Sridharan, R. Balakrishnan
535 pages
MSC Data Science Entrance Test Syllabus
PDF
No ratings yet
MSC Data Science Entrance Test Syllabus
2 pages
Data Structures With Java
PDF
0% (1)
Data Structures With Java
5 pages
2010 Book IntegerProgrammingAndCombinato
PDF
No ratings yet
2010 Book IntegerProgrammingAndCombinato
476 pages
C Language Introduction
PDF
100% (1)
C Language Introduction
192 pages
Matrices and Graphs. Theory and Applications To Economics
PDF
No ratings yet
Matrices and Graphs. Theory and Applications To Economics
258 pages
DATASTRUCTURESANDALGORITHMSUSINGJAVAChapter 1 Overviewand Java R
PDF
No ratings yet
DATASTRUCTURESANDALGORITHMSUSINGJAVAChapter 1 Overviewand Java R
60 pages
Data Structures and Their Use in Elementary Algorithms
PDF
No ratings yet
Data Structures and Their Use in Elementary Algorithms
134 pages
Data Structures and Algorithms in C++ 2nd Edition
PDF
No ratings yet
Data Structures and Algorithms in C++ 2nd Edition
41 pages
Concurrent Programming
PDF
100% (2)
Concurrent Programming
529 pages
Day 1 - Intro To DSA
PDF
No ratings yet
Day 1 - Intro To DSA
22 pages
Software For Data Analysis: Programming With R
PDF
No ratings yet
Software For Data Analysis: Programming With R
514 pages
IE506 Lecture0 2024jan5
PDF
No ratings yet
IE506 Lecture0 2024jan5
17 pages
Data Structures and Algorithms: Lecture Notes For
PDF
No ratings yet
Data Structures and Algorithms: Lecture Notes For
126 pages
APL in R PDF
PDF
No ratings yet
APL in R PDF
14 pages
Data Stru by Chapman and Application
PDF
No ratings yet
Data Stru by Chapman and Application
1,321 pages
A Textbook of Numerical Methods3934170332936108873
PDF
No ratings yet
A Textbook of Numerical Methods3934170332936108873
131 pages
Matheng Skript 1213
PDF
No ratings yet
Matheng Skript 1213
227 pages
Data Structures and Algorithms in Java: Third Edition
PDF
No ratings yet
Data Structures and Algorithms in Java: Third Edition
14 pages
OS in One Video
PDF
No ratings yet
OS in One Video
16 pages
Large Networks and Graph Limits
PDF
100% (2)
Large Networks and Graph Limits
487 pages
S1 To S9 (Upto Mathematical Functions)
PDF
No ratings yet
S1 To S9 (Upto Mathematical Functions)
122 pages
PrinciplesOfConcurrent PDF
PDF
No ratings yet
PrinciplesOfConcurrent PDF
16 pages
Akka Scala
PDF
No ratings yet
Akka Scala
622 pages
An Introduction To Formal Languages and Automata, Fifth Edition by Peter Linz
PDF
No ratings yet
An Introduction To Formal Languages and Automata, Fifth Edition by Peter Linz
2 pages
ML Engineering Ebook Final
PDF
No ratings yet
ML Engineering Ebook Final
39 pages
Treatiseonalgebr 00 Smituoft
PDF
100% (1)
Treatiseonalgebr 00 Smituoft
676 pages
Guide Data Structures Concise Intro Using Java
PDF
No ratings yet
Guide Data Structures Concise Intro Using Java
385 pages
IDL Programming Techniques 2nd Edition
PDF
No ratings yet
IDL Programming Techniques 2nd Edition
465 pages
Statistics and Numerical Methods - Rekha
PDF
No ratings yet
Statistics and Numerical Methods - Rekha
13 pages
181 Textbook
PDF
No ratings yet
181 Textbook
655 pages
Article - Data Structure and Algorithms Using C
PDF
No ratings yet
Article - Data Structure and Algorithms Using C
4 pages
Formal Languages and Automata Exam: Answer The Following Questions
PDF
No ratings yet
Formal Languages and Automata Exam: Answer The Following Questions
11 pages
Theoretical Computer Science An Introduction
PDF
No ratings yet
Theoretical Computer Science An Introduction
214 pages
Continue
PDF
No ratings yet
Continue
2 pages
The UNIX I/O System - Dennis M. Ritchie
PDF
No ratings yet
The UNIX I/O System - Dennis M. Ritchie
7 pages
Exam Data Structure
PDF
No ratings yet
Exam Data Structure
2 pages
MATH1208AnnotatedBook Imp
PDF
No ratings yet
MATH1208AnnotatedBook Imp
145 pages
Prologue: 0.1 Books and Algorithms
PDF
No ratings yet
Prologue: 0.1 Books and Algorithms
9 pages
Ks Trivedi
PDF
0% (4)
Ks Trivedi
5 pages