MARC details
| 000 -LEADER |
| fixed length control field |
11420cam a2200385 i 4500 |
| 001 - CONTROL NUMBER |
| control field |
462909085 |
| 005 - DATE AND TIME OF LATEST TRANSACTION |
| control field |
20201224114629.0 |
| 008 - FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION |
| fixed length control field |
101007s2011 maua 001 0 eng |
| 010 ## - LIBRARY OF CONGRESS CONTROL NUMBER |
| LC control number |
2010039426 |
| 020 ## - INTERNATIONAL STANDARD BOOK NUMBER |
| International Standard Book Number |
0132122308 (alk. paper) |
| 020 ## - INTERNATIONAL STANDARD BOOK NUMBER |
| International Standard Book Number |
9780132122306 (alk. paper) |
| 040 ## - CATALOGING SOURCE |
| Original cataloging agency |
DLC |
| Transcribing agency |
DLC |
| Modifying agency |
YDX |
| -- |
BTCTA |
| -- |
YDXCP |
| -- |
EG-NcFUE |
| Description conventions |
rda |
| 050 00 - LIBRARY OF CONGRESS CALL NUMBER |
| Classification number |
QA76.73.J3 |
| Item number |
C37 2011 |
| 082 00 - DEWEY DECIMAL CLASSIFICATION NUMBER |
| Classification number |
005.133 |
| Edition number |
22 |
| Item number |
P.J.D |
| 100 1# - MAIN ENTRY--PERSONAL NAME |
| Personal name |
Prichard, Janet J. |
| 9 (RLIN) |
25905 |
| 245 10 - TITLE STATEMENT |
| Title |
Data abstraction & problem solving with Java : |
| Remainder of title |
walls and mirrors / |
| Statement of responsibility, etc |
Janet J. Prichard, Frank Carrano. |
| 246 3# - VARYING FORM OF TITLE |
| Title proper/short title |
Data abstraction and problem solving with Java. |
| 250 ## - EDITION STATEMENT |
| Edition statement |
Third edition. |
| 260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT) |
| Place of publication, distribution, etc |
Boston : |
| Name of publisher, distributor, etc |
Addison-Wesley, |
| Date of publication, distribution, etc |
c2011. |
| 300 ## - PHYSICAL DESCRIPTION |
| Extent |
xxiii, 935 pages. : |
| Other physical details |
illustration ; |
| Dimensions |
24 cm. |
| 336 ## - CONTENT TYPE |
| Source |
rdacontent |
| Content type term |
text |
| 337 ## - MEDIA TYPE |
| Source |
rdamedia |
| Media type term |
unmediated |
| 338 ## - CARRIER TYPE |
| Source |
rdacarrier |
| Carrier type term |
volume |
| 500 ## - GENERAL NOTE |
| General note |
Rev. ed. of: Data abstraction and problem solving with Java / Frank M. Carrano, Janet J. Prichard. 2007. |
| 500 ## - GENERAL NOTE |
| General note |
Includes index. |
| 504 ## - BIBLIOGRAPHY, ETC. NOTE |
| Bibliography, etc |
Includes bibliographical references and index. |
| 505 0# - FORMATTED CONTENTS NOTE |
| Formatted contents note |
PART ONE Problem-Solving Techniques 1<br/>1 Review of Java Fundamentals 3<br/>1.1 Language Basics 4<br/>Comments 4<br/>Identifiers and Keywords 4<br/>Variables 4<br/>Primitive Data Types 5<br/>References 6<br/>Literal Constants 6<br/>Named Constants 7<br/>Assignments and Expressions 8<br/>Arrays 11<br/>1.2 Selection Statements 14<br/>The if Statement 15<br/>The switch Statement 16<br/>1.3 Iteration Statements 17<br/>The while Statement 17<br/>The for Statement 18<br/>The do Statement 21<br/>1.4 Program Structure 21<br/>Packages 22<br/>Classes 23<br/>Data Fields 24<br/>Methods 26<br/>How to Access Members of an Object 30<br/>Class Inheritance 30<br/>1.5 Useful Java Classes 32<br/>The Object Class 32<br/>The Array Class 34<br/>String Classes 35<br/>1.6 Java Exceptions 40<br/>Catching Exceptions 40<br/>Throwing Exceptions 47<br/>1.7 Text Input and Output 49<br/>Input 49<br/>Output 51<br/>The Console Class 54<br/>1.8 File Input and Output 56<br/>Text Files 58<br/>Object Serialization 66<br/>Summary 69 Cautions 72 Self-Test Exercises 72<br/>Exercises 73 Programming Problems 78<br/><br/>2 Principles of Programming and Software Engineering 81<br/>2.1 Problem Solving and Software Engineering 82<br/>What Is Problem Solving? 82<br/>The Life Cycle of Software 83<br/>What Is a Good Solution? 93<br/>2.2 Achieving an Object-Oriented Design 95<br/>Abstraction and Information Hiding 96<br/>Object-Oriented Design 98<br/>Functional Decomposition 100<br/>General Design Guidelines 101<br/>Modeling Object-Oriented Designs Using UML 102<br/>Advantages of an Object-Oriented Approach 106<br/>2.3 A Summary of Key Issues in Programming 107<br/>Modularity 107<br/>Modifiability 109<br/>Ease of Use 111<br/>Fail-Safe Programming 112<br/>Style 118<br/>Debugging 122<br/>Summary 125 Cautions 126 Self-Test Exercises 126<br/>Exercises 127 Programming Problems 132<br/><br/>3 Recursion: The Mirrors 137<br/>3.1 Recursive Solutions 138<br/>A Recursive Valued Method: The Factorial of n 141<br/>A Recursive void Method: Writing a String Backward 148<br/>3.2 Counting Things 159<br/>Multiplying Rabbits (The Fibonacci Sequence) 159<br/>Organizing a Parade 161<br/>Mr. Spock's Dilemma (Choosing k out of n Things) 164<br/>3.3 Searching an Array 166<br/>Finding the Largest Item in an Array 167<br/>Binary Search 168<br/>Finding the k th Smallest Item in an Array 172<br/>3.4 Organizing Data 176<br/>The Towers of Hanoi 176<br/>3.5 Recursion and Efficiency 180<br/>Summary 187 Cautions 187 Self-Test Exercises 188<br/>Exercises 189 Programming Problems 195<br/><br/>4 Data Abstraction: The Walls 197<br/>4.1 Abstract Data Types 198<br/>4.2 Specifying ADTs 203<br/>The ADT List 204<br/>The ADT Sorted List 209<br/>Designing an ADT 211<br/>Axioms (Optional) 215<br/>4.3 Implementing ADTs 218<br/>Java Classes Revisited 219<br/>Java Interfaces 221<br/>Java Packages 224<br/>An Array-Based Implementation of the ADT List 226<br/>Summary 233 Cautions 233 Self-Test Exercises 234<br/>Exercises 235 Programming Problems 238<br/><br/>5 Linked Lists 241<br/>5.1 Preliminaries 242<br/>Object References 242<br/>Resizeable Arrays 248<br/>Reference-Based Linked Lists 249<br/>5.2 Programming with Linked Lists 253<br/>Displaying the Contents of a Linked List 253<br/>Deleting a Specified Node from a Linked List 255<br/>Inserting a Node into a Specified Position of a Linked List 258<br/>A Reference-Based Implementation of the ADT List 264<br/>Comparing Array-Based and Reference-Based Implementations 268<br/>Passing a Linked List to a Method 271<br/>Processing Linked Lists Recursively 271<br/>5.3 Variations of the Linked List 277<br/>Tail References 277<br/>Circular Linked Lists 278<br/>Dummy Head Nodes 280<br/>Doubly Linked Lists 280<br/>5.4 Application: Maintaining an Inventory 284<br/>5.5 The Java Collections Framework 290<br/>Generics 291<br/>Iterators 292<br/>The Java Collection's Framework List Interface 295<br/>Summary 298 Cautions 300 Self-Test Exercises 301<br/>Exercises 303 Programming Problems 307<br/><br/>PART TWOProblem Solving with Abstract Data Types 313<br/>6 Recursion as a Problem-Solving Technique 315<br/>6.1 Backtracking 316<br/>The Eight Queens Problem 316<br/>6.2 Defining Languages 321<br/>The Basics of Grammars 322<br/>Two Simple Languages 323<br/>Algebraic Expressions 326<br/>6.3 The Relationship Between Recursion and Mathematical Induction 336<br/>The Correctness of the Recursive Factorial Method 336<br/>The Cost of Towers of Hanoi 337<br/>Summary 339 Cautions 339 Self-Test Exercises 340<br/>Exercises 340 Programming Problems 344<br/><br/>7 Stacks 351<br/>7.1 The Abstract Data Type Stack 352<br/>Developing an ADT During the Design of a Solution 352<br/>7.2 Simple Applications of the ADT Stack 358<br/>Checking for Balanced Braces 358<br/>Recognizing Strings in a Language 362<br/>7.3 Implementations of the ADT Stack 363<br/>An Array-Based Implementation of the ADT Stack 365<br/>A Reference-Based Implementation of the ADT Stack 367<br/>An Implementation That Uses the ADT List 369<br/>Comparing Implementations 371<br/>The Java Collections Framework Class Stack 371<br/>7.4 Application: Algebraic Expressions 373<br/>Evaluating Postfix Expressions 373<br/>Converting Infix Expressions to Equivalent Postfix Expressions 375<br/>7.5 Application: A Search Problem 378<br/>A Nonrecursive Solution That Uses a Stack 380<br/>A Recursive Solution 388<br/>7.6 The Relationship Between Stacks and Recursion 391<br/>Summary 393 Cautions 393 Self-Test Exercises 394<br/>Exercises 395 Programming Problems 400<br/><br/>8 Queues 409<br/>8.1 The Abstract Data Type Queue 410<br/>8.2 Simple Applications of the ADT Queue 412<br/>Reading a String of Characters 412<br/>Recognizing Palindromes 413<br/>8.3 Implementations of the ADT Queue 414<br/>A Reference-Based Implementation 416<br/>An Array-Based Implementation 419<br/>An Implementation That Uses the ADT List 425<br/>The JCF Interfaces Queue and Deque 426<br/>Comparing Implementations 432<br/>8.4 A Summary of Position-Oriented ADTs 433<br/>8.5 Application: Simulation 434<br/>Summary 444 Cautions 445 Self-Test Exercises 445<br/>Exercises 446 Programming Problems 450<br/><br/>9 Advanced Java Topics 455<br/>9.1 Inheritance Revisited 456<br/>Java Access Modifiers 462<br/>Is-a and Has-a Relationships 464<br/>9.2 Dynamic Binding and Abstract Classes 466<br/>Abstract Classes 469<br/>Java Interfaces Revisited 474<br/>9.3 Java Generics 475<br/>Generic Classes 475<br/>Generic Wildcards 477<br/>Generic Classes and Inheritance 478<br/>Generic Implementation of the Class List 481<br/>Generic Methods 483<br/>9.4 The ADTs List and Sorted List Revisited 484<br/>Implementations of the ADT Sorted List That Use the ADT List 485<br/>9.5 Iterators 489<br/>Summary 493 Cautions 494 Self-Test Exercises 494<br/>Exercises 495 Programming Problems 500<br/><br/>10 Algorithm Efficiency and Sorting 505<br/>10.1 Measuring the Efficiency of Algorithms 506<br/>The Execution Time of Algorithms 507<br/>Algorithm Growth Rates 509<br/>Order-of-Magnitude Analysis and Big O Notation 509<br/>Keeping Your Perspective 515<br/>The Efficiency of Searching Algorithms 517<br/>10.2 Sorting Algorithms and Their Efficiency 518<br/>Selection Sort 519<br/>Bubble Sort 523<br/>Insertion Sort 525<br/>Mergesort 527<br/>Quicksort 533<br/>Radix Sort 545<br/>A Comparison of Sorting Algorithms 547<br/>The Java Collections Framework Sort Algorithm 548<br/>Summary 552 Cautions 553 Self-Test Exercises 553<br/>Exercises 554 Programming Problems 558<br/><br/>11 Trees 561<br/>11.1 Terminology 562<br/>11.2 The ADT Binary Tree 570<br/>Basic Operations of the ADT Binary Tree 570<br/>General Operations of the ADT Binary Tree 571<br/>Traversals of a Binary Tree 574<br/>Possible Representations of a Binary Tree 577<br/>A Reference-Based Implementation of the ADT Binary Tree 581<br/>Tree Traversals Using an Iterator 586<br/>11.3 The ADT Binary Search Tree 594<br/>Algorithms for the Operations of the ADT Binary Search Tree 600<br/>A Reference-Based Implementation<br/>of the ADT Binary Search Tree 615<br/>The Efficiency of Binary Search Tree Operations 619<br/>Treesort 624<br/>Saving a Binary Search Tree in a File 625<br/>The JCF Binary Search Algorithm 628<br/>11.4 General Trees 629<br/>Summary 631 Cautions 632 Self-Test Exercises 632<br/>Exercises 634 Programming Problems 640<br/><br/>12 Tables and Priority Queues 643<br/>12.1 The ADT Table 644<br/>Selecting an Implementation 651<br/>A Sorted Array-Based Implementation of the ADT Table 658<br/><br/><br/> |
| 505 0# - FORMATTED CONTENTS NOTE |
| Formatted contents note |
A Binary Search Tree Implementation of the ADT Table 661<br/>12.2 The ADT Priority Queue: A Variation of the ADT Table 663<br/>Heaps 667<br/>A Heap Implementation of the ADT Priority Queue 676<br/>Heapsort 678<br/>12.3 Tables and Priority Queues in the JCF 681<br/>The JCF Map Interface 681<br/>The JCF Set Interface 685<br/>The JCF PriorityQueue Class 689<br/>Summary 691 Cautions 692 Self-Test Exercises 692<br/>Exercises 693 Programming Problems 696<br/><br/>13 Advanced Implementations of Tables 699<br/>13.1 Balanced Search Trees 700<br/>2-3 Trees 701<br/>2-3-4 Trees 721<br/>Red-Black Trees 728<br/>AVL Trees 731<br/>13.2 Hashing 737<br/>Hash Functions 741<br/>Resolving Collisions 743<br/>The Efficiency of Hashing 752<br/>What Constitutes a Good Hash Function? 755<br/>Table Traversal: An Inefficient Operation under Hashing 757<br/>The JCF Hashtable and TreeMap Classes 758<br/>The Hashtable Class 758<br/>The TreeMap Class 761<br/>13.3 Data with Multiple Organizations 764<br/>Summary 769 Cautions 770 Self-Test Exercises 771<br/>Exercises 771 Programming Problems 774<br/><br/>14 Graphs 777<br/>14.1 Terminology 778<br/>14.2 Graphs as ADTs 781<br/>Implementing Graphs 782<br/>Implementing a Graph Class Using the JCF 785<br/>14.3 Graph Traversals 788<br/>Depth-First Search 790<br/>Breadth-First Search 791<br/>Implementing a BFS Iterator Class Using the JCF 793<br/>14.4 Applications of Graphs 796<br/>Topological Sorting 796<br/>Spanning Trees 799<br/>Minimum Spanning Trees 804<br/>Shortest Paths 807<br/>Circuits 811<br/>Some Difficult Problems 814<br/>Summary 815 Cautions 816 Self-Test Exercises 816<br/>Exercises 817 Programming Problems 820<br/><br/>15 External Methods 823<br/>15.1 A Look at External Storage 824<br/>15.2 Sorting Data in an External File 827<br/>15.3 External Tables 835<br/>Indexing an External File 837<br/>External Hashing 841<br/>B-Trees 845<br/>Traversals 855<br/>Multiple Indexing 857<br/>Summary 858 Cautions 859 Self-Test Exercises 859<br/>Exercises 859 Programming Problems 862<br/><br/>A. A Comparison of Java to C++ 863<br/>B. Unicode Character Codes (ASCII Subset) 867<br/>C. Java Resources 868<br/>Java Web Sites 868<br/>Using Java SE 6 868<br/>Integrated Development Environments (IDEs) 869<br/>D. Mathematical Induction 870<br/>Example 1 870<br/>Example 2 871<br/>Example 3 872<br/>Example 4 873<br/>Example 5 873<br/>Self-Test Exercises 874 Exercises 874<br/>Glossary 877<br/>Self-Test Answers 897<br/>Index 921 |
| 650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM |
| Topical term or geographic name as entry element |
Java (Computer program language) |
| 9 (RLIN) |
25906 |
| 650 #0 - SUBJECT ADDED ENTRY--TOPICAL TERM |
| Topical term or geographic name as entry element |
Data structures (Computer science) |
| 9 (RLIN) |
25907 |
| 700 1# - ADDED ENTRY--PERSONAL NAME |
| Personal name |
Carrano, Frank M. |
| Title of a work |
Data abstraction and problem solving with Java. |
| 9 (RLIN) |
25908 |
| 942 ## - ADDED ENTRY ELEMENTS (KOHA) |
| Koha item type |
Books |
| Source of classification or shelving scheme |
Dewey Decimal Classification |