HOME > 상세정보

상세정보

Data structures and problem solving using Java

Data structures and problem solving using Java (23회 대출)

자료유형
단행본
개인저자
Weiss, Mark Alle.
서명 / 저자사항
Data structures and problem solving using Java / Mark Allen Weiss.
발행사항
Reading, Mass. :   Addison Wesley,   c1998.  
형태사항
xxxii, 780 p. : ill. ; 24 cm.
ISBN
0201549913
서지주기
Includes bibliographical references and index.
일반주제명
Java (Computer program language) Data structures (Computer science) Problem solving -- Data processing.
000 00983camuu2200289 a 4500
001 000000638074
005 20000428144312
008 970730s1998 maua b 001 0 eng
010 ▼a 97030970
015 ▼a GB98-9378
020 ▼a 0201549913
040 ▼a DLC ▼c DLC ▼d UKM
049 ▼l 121038405 ▼f 과학 ▼l 121043650 ▼f 과학
050 0 0 ▼a QA76.73.J38 ▼b W45 1998
082 0 0 ▼a 005.13/3 ▼2 21
090 ▼a 005.133 ▼b W431dt
100 1 ▼a Weiss, Mark Alle.
245 1 0 ▼a Data structures and problem solving using Java / ▼c Mark Allen Weiss.
246 1 4 ▼a Data structures & problem solving using Java
260 ▼a Reading, Mass. : ▼b Addison Wesley, ▼c c1998.
300 ▼a xxxii, 780 p. : ▼b ill. ; ▼c 24 cm.
504 ▼a Includes bibliographical references and index.
650 0 ▼a Java (Computer program language)
650 0 ▼a Data structures (Computer science)
650 0 ▼a Problem solving ▼x Data processing.
950 1 ▼b $49.95

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(2층서고)/ 청구기호 005.133 W431dt 등록번호 121038405 (14회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(2층서고)/ 청구기호 005.133 W431dt 등록번호 121043650 (9회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

Data Structures and Problem Solving Using Java teaches data structures and algorithms from the perspective of abstract thinking and problem solving. In this text, experienced author and educator Mark Allen Weiss takes a unique approach by clearly separating the specification and implementation of data structures. Dr. Weiss presents the interface and running time of data structures in Part II of the book. Then, he provides the opportunity for students to use the data structures in a variety of practical examples before introducing the implementations in Part IV. By first gaining a familiarity with the interfaces and uses of data structures, readers will be able to think more abstractly about the subject matter. Features *Contains extensive sample code using Java 1.1, which is available over the Internet and has been tested and reviewed by a professional programmer for accuracy. *Provides an introduction to Java in Part I and also covers Graphical User Interfaces (GUI's) in an appendix. *Includes pedagogical aids such as margin notes and comprehensive end-of-chapter material to help readers grasp challenging concepts.* Offers flexibility in topic coverage by minimizing dependencies among the different chapters. 0201549913B04062001


정보제공 : Aladin

목차


CONTENTS

Part Ⅰ : Tour of Java

 CHAPTER 1 Primitive Java = 3

  1.1 The General Environment = 3

  1.2 The First Program = 5

   1.2.1 Comments 5

   1.2.2 main = 6

   1.2.3 Terminal Output = 6

  1.3 Primitive Types = 6

   1.3.1 The Primitive Types = 6

   1.3.2 Constants = 7

   1.3.3 Declaration and Initialization Of Primitive types = 7

   1.3.4 Terminal Input and Ourput = 8

  1.4 Basic Operators = 8

   1.4.1 Assignment Operators = 10

   1.4.2 Binary Arithmetic Operators = 10

   1.4.3 Unary Operators = 10

   1.4.4 Type Conversions = 10

  1.5 Conditional Statements = 11

   1.5.1 Relational and Equality Operators = 11

   1.5.2 Logical Operators = 12

   1.5.3 The if Statement 13

   1.5.4 The while statement = 13

   1.5.5 The for Statement = 14

   1.5.6 The do Statement = 15

   1.5.7 break and continue = 16

   1.5.8 The switch Statement = 17

   1.5.9 The Conditional Operator = 17

  1.6 Methods 18

   1.6.1 Overloading of Method Names = 19

   1.6.2 Storage Classes = 20

  Summary = 20

  Objects of the Game = 20

  Common Errors = 22

  On the Internet = 23

  Exercises = 23

  References = 25

 CHAPTER 2 References = 27

  2.1 What Is a Reference? = 27

  2.2 Backs of Objects and References = 29

   2.2.1 The Dot Operator (.) = 30

   2.2.2 Declaration of Objects = 30

   2.2.3 Garbage Collection = 31

   2.2.4 The Meaning of = 31

   2.2.5 Parameter Passing = 32

   2.2.6. The Meaning of = 33

   2.2.7 Operator Overloading for Objects = 33

  2.3 Strings = 33

   2.3.1 Basics of String Manipulation = 34

   2.3.2 String Concatenation = 34

   2.3.3 Comparing Strings = 35

   2.3.4 Pther String Methods = 35

   2.3.5 Converting between Strings and Primitive Types = 35

  2.4 Arrays = 36

   2.4.1 Declaration, Assignment, and Methods = 35

   2.4.2 Dynamic Array Expansion = 39

   2.4.3 Multidimensional Arrays = 41

   2.4.4 Command-line Arguments = 41

  2.5 Exception Handling = 42

   2.5.1 Processing Exceptions = 42

   2.5.2 The finally Clause = 43

   2.5.3 Common Exceptions = 43

   2.5.4 The throw and Throw Clauses = 44

  2.6 Input and Output = 45

   2.6.1 Basic Stream Operations = 46

   2.6.2 The StringTokenizer Object = 46

   2.6.3 Sequential Files = 47

  Summary = 49

  Objects of the Game = 49

  Common Errors = 51

  On the Internet = 51

  Exercises = 51

  References = 52

 CHAPTER 3 Objects and Classes = 53

  3.1 What Is Object-oriented Programming? = 53

  3.2 A Simple Example = 55

  3.3 Javadoc = 57

  3.4 Basic Methods = 58

   3.4.1 Constructors = 58

   3.4.2 Mutators and Accessors = 60

   3.4.3 Output and toString = 60

   3.4.4 equals = 62

   3.4.5 static Methods = 62

   3.4.6 main = 62

  3.5 Packages = 62

   3.5.1 The import Directive = 63

   3.5.2 The package Statement = 64

   3.5.3 The CLASSPATH Environment Variable = 65

   3.5.4 Package-friendly Visibility Rules = 66

   3.5.5 Separate Compilation = 66

  3.6 Additional Constructs = 66

   3.6.1 The this Reference = 66

   3.6.2 The this Shorthand for Constructors = 67

   3.6.3 The instanceof Operator = 68

   3.6.4 Static Fields = 68

   3.6.5 Static Initializers = 69

  Summary = 70

  Objects of the Game = 70

  Common Errors = 71

  On the Internet = 72

  Exercises = 72

  References = 74

 CHAPTER 4 Inheritance = 75

  4.1 What Is Inheritance? = 75

  4.2 Basic Java Syntax = 78

   4.2.1 Visibility Rules = 79

   4.2.2 The Constructor and Super = 79

   4.2.3 final Methods and Classes = 80

   4.2.4 Overriding a Method = 81

   4.2.5 Abstract Methods and Classes = 82

  4.3 Example : Expanding the Shape Class = 84

   4.3.1 Digression : An Introduction to Sorting = 86

  4.4 Multiple Inheritance = 90

  4.5 The Interface = 90

   4.5.1 Specifying an Interface = 91

   4.5.2 Implementing an Interface = 91

   4.5.3 Multiple Interfaces = 94

  4.6 Implementing Generic Components = 94

  Summary = 97

  Objects of the Game = 98

  Common Errors = 99

  On the Internet = 100

  Exercises = 100

  References = 102

Part Ⅱ : Algorithms and Building Blocks

 CHAPTER 5 Algorithm Analysis = 107

  5.1 What Is Algorithm Analysis? = 107

  5.2 Examples of Algorithm Running Times = 111

  5.3 The Maximum Contiguous Subsequence Sum Problem = 113

   5.3.1 The Obvious O(N³) Algorithm = 114

   5.3.2 An Improved O(N²) Algorithm = 117

   5.3.3 A Linear Algorithm = 118

  5.4 General Big-Oh Rules = 121

  5.5 The Logarithm = 124

  5.6 Static Searching Problem = 127

   5.6.1 Sequential Search = 127

   5.6.2 Binary Search = 128

   5.6.3 Interpolation Search = 129

  5.7 Checking an Algorithm Analysis = 131

  5.8 Limitations of Big-Oh Analysis = 133

  Summary = 133

  Objects of the Game = 134

  Common Errors = 134

  On the Internet = 135

  Exercises = 135

  References = 139

 CHAPTER 6 Data Structures = 143

  6.1 Why do We Need Data Structures? = 143

  6.2 Stacks = 145

   6.2.1 Stacks ad Computer Languages = 147

  6.3 Queues = 148

  6.4 Linked Lists = 150

  6.5 General Trees = 155

  6.6 Binary Search Trees = 157

  6.7 Hash Tables = 161

  6.8 Priority Queues = 163

  Summary = 166

  Objects of the Game = 167

  Common Errors = 168

  On the Internet = 168

  Exercises = 169

  References = 172

 CHAPTER 7 Recursion = 173

  7.1 What Is Recursion? = 173

  7.2 Background : Proofs by Mathematical Induction = 174

  7.3 Basic Recursion = 177

   7.3.1 Printing Numbers in Any Base = 179

   7.3.2 Why It Works = 180

   7.3.3 How It Works = 182

   7.3.4 Too Much Recursion Can Be Dangerous = 183

   7.3.5 Additional Examples = 185

  7.4 Numerical Applications = 189

   7.4.1 Modular Arithmetic = 190

   7.4.2 Modular Exponentiation = 190

   7.4.3 Greatest Common Divisor and Multiplicative Inverses = 192

   7.4.4 The RSA Cryptosystem = 194

  7.5 Divide-and-Conquer Algorithms = 197

   7.5.1 The Maximum Contiguous Subsequence Sum Problem = 197

   7.5.2 Analysis of a Basic Divide-and-Conquer Recurrence = 199

   7.5.3 A General Upper Bound for Divide-and-Conquer Running Times = 204

  7.6 Dynamic Programming = 207

  7.7 Backtracking Algorithms = 211

  Summary = 214

  Objects of the Game = 215

  Common Errors = 217

  On the Internet = 217

  Exercises = 218

  References = 221

 CHAPTER 8 Sorting Algorithms = 223

  8.1 Why Is Sorting Important? 223

  8.2 Preliminaries = 225

  8.3 Analysis of the Insertion Sort and Other Simple Sorts = 225

  8.4 Shellsort = 227

   8.4.1 Performance of Shellsort = 229

  8.5 Mergesort = 231

   8.5.1 Linear-time Merging of Sorted Arrays = 231

   8.5.2 The Mergesort Algorithm = 234

  8.6 Quicksort = 235

   8.6.1 The Quicksort Algorithm = 235

   8.6.2 Analysis of Quicksort = 236

   8.6.3 Picking the Pivot = 240

   8.6.4 A Partitioning Strategy = 241

   8.6.5 Keys Equal to the Pivot = 244

   8.6.6 Median-of-three Partitioning = 244

   8.6.7 Small Arrays = 245

   8.6.8 Java Quicksort Routine = 246

  8.7 Quickselect = 248

  8.8 A Lower Bound for Sorting = 250

  Summary = 251

  Objects of the Game = 251

  Common Errors = 252

  On the Internet = 252

  Exercises = 253

  References = 256

 CHAPTER 9 Randomization = 259

  9.1 Why Do We Need Random Numbers? = 259

  9.2 Random-number Generators = 260

  9.3 Nonuniform Random Numbers = 265

  9.4 Generating a Random Permutation = 268

  9.5 Randomized Algorithms = 269

  9.6 Randomized Primality Testing = 271

  Summary = 275

  Objects of the Game = 275

  Common Errors = 276

  On the Internet = 277

  Exercises = 277

  References = 279

Part Ⅲ : Applications

 CHAPTER 10 Fun and Games = 283

  10.1 Word Search Puzzles = 283

   10.1.1 Theory = 283

   10.1.2 Java Implementation = 288

  10.2 The Game of Tic-Tac-Toe = 292

   10.2.1 Alpha-beta Pruning = 292

   10.2.2 Transposition Tables = 293

   10.2.3 Computer Chess = 298

  Summary = 299

  Objects of the Game = 299

  Common Errors = 300

  On the Internet = 300

  Exercises = 300

  References = 302

 CHAPTER 11 Stacks and Compilers = 303

  11.1 Balanced-symbol Checker = 303

   11.1.1 Basic Algorithm = 303

   11.1.2 Implementation 306

  11.2 A Simple Calculator = 313

   11.2.1 Postfix Machines = 314

   11.2.2 Infix to Postfix Conversion = 316

   11.2.3 Implementation = 318

   11.2.4 Expression Trees = 326

  Summary = 327

  Objects of the Game = 327

  Common Errors = 328

  On the Internet = 328

  Exercises = 329

  References = 330

 CHAPTER 12 Utilities = 331

  12.1 File Compression = 331

   12.1.1 Prefix Codes = 332

   12.1.2 Huffman's Algorithm = 334

   12.1.3 The Encoding Phase = 337

   12.1.4 Decoding Phase = 337

   12.1.5 Practical Considerations = 338

  12.2 A Cross-reference Generator = 338

   12.2.1 Basic Ideas = 339

   12.2.2 Java Implementation = 339

  Summary = 343

  Objects of the Game = 345

  Common Errors = 345

  On the Internet = 345

  Exercises = 345

  References = 348

 CHAPTER 13 Simulation = 349

  13.1 The Josephus Problem = 349

   13.1.1 The Simple Solution = 350

   13.1.2 A More Efficient Algorithm = 352

  13.2 Event-driven Simulation = 354

   13.2.1 Basic Ideas = 354

   13.2.2 Example : A Modem back Simulation = 356

  Summary = 363

  Objects of the Game = 363

  Common Errors = 364

  On the Internet = 364

  Exercises = 364

  References = 364

 CHAPTER 14 Graphs and Paths = 367

  14.1 Definitions = 367

   14.1.1 Representation = 369

  14.2 Unweighted Shortest-path Problem = 379

   14.2.1 Theory = 382

   14.2.2 Java Implementation = 386

  14.3 Positive-weighted, Shortest-path Problem = 387

   14.4.1 Theory = 393

   14.4.2 Java Implementation = 395

  14.5 Path Problems in Acyclic Graphs = 395

   14.5.1 Topological Sorting = 396

   14.5.2 Theory of the Acyclic Shortest-path Algorithm = 398

   14.5.3 Java Implementation = 399

   14.5.4 An Application : Critical-path Analysis = 399

  Summary = 403

  Objects of the Game = 403

  Common Errors = 405

  On the Internet = 405

  Exercises = 405

  References = 408

Part Ⅳ : Implementations

 CHAPTER 15 Stacks and Queues = 411

  15.1 Dynamic Array Implementations = 411

   15.1.1 Stacks = 411

   15.1.2 Queues = 416

  15.2 Linked-list Implementations = 421

   15.2.1 Stack = 422

   15.2.2 Queues = 426

  15.3 Comparison of the Two Methods = 428

  15.4 Double-ended Queues = 428

  Summary = 429

  Objects of the Game = 430

  Common Errors = 430

  On the Internet = 430

  Exercises = 430

 CHAPTER 16 Linked Lists = 433

  16.1 Basic Ideas = 433

   16.1.1 Header Nodes = 435

   16.1.2 Iterator Classes = 436

  16.2 Java Implementation = 437

  16.3 Doubly Linked Lists and Circular Linked Lists = 445

  16.4 Sorted Linked Lists = 447

  Summary = 450

  Objects of the Game = 450

  Common Errors = 450

  On the Internet = 451

  Exercises = 451

 CHAPTER 17 Trees = 455

  17.1 General Trees = 455

   17.1.1 Definitions = 455

   17.1.2 Implementation = 459

  17.2 Binary Trees = 463

  17.3 Recursion and tree468

  17.4 Tree traversal : Iterator Classes = 471

   17.4.1 Postorder Traversal = 474

   17.4.2 Inorder Traversal = 477

   17.4.3 Preorder traversal = 477

   17.4.4 Level-order Traversals = 481

  Summary = 483

  Objects of the Game = 483

  Common Errors = 484

  On the Internet = 484

  Exercises = 485

 CHAPTER 18 Binary Search Trees = 489

  18.1 Basic Ideas = 489

   18.1.1 The Operations = 490

   18.1.2 Java Implementation = 494

  18.2 Order Statistics = 500

   18.2.1 Java Implementation = 500

  18.3 Analysis of Binary Search Tree Operations = 504

  18.4 AVL Trees = 508

   18.4.1 Properties = 509

   18.4.2 Single Rotation = 511

   18.4.3 Double Rotation = 512

   18.4.4 Summary of AVA Insertion = 515

  18.5 Red-Black Trees = 517

   18.5.1 Bottom-up Insertion = 518

   18.5.2 Top-down Red-Black Trees = 520

   18.5.3 Java Implementation = 522

   18.5.4 Top-down Deletions = 526

  18.6 AA-Trees = 530

   18.6.1 Insertion = 532

   18.6.2 Deletion = 536

   18.6.3 Java Implementation = 537

  18.7 B-Tree = 540

  Summary = 545

  Objects of the Game = 546

  Common Errors = 547

  On the Internet = 547

  Exercises = 548

  References = 550

 CHAPTER 19 Hash Tables = 553

  19.1 Basic Ideas = 553

  19.2 Hash Function = 554

  19.3 Linear Probing = 557

   19.3.1 Naive Analysis of Linear Probing = 558

   19.3.2 What Really Happens : Primary Clustering = 560

   19.3.3 Analysis of the Find Operation = 560

  19.4 Quadratic Probing = 562

   19.4.1 Java Implementation = 568

   19.4.2 Analysis of Quadratic Probing = 572

  19.5 Separate Chaining Hashing 573

  Summary = 573

  Objects of the Game = 575

  Common Errors = 575

  On the Internet = 576

  Exercises = 576

  References = 578

 CHAPTER 20 A Priority Queue : The Binary Heap = 581

  20.1 Basic Ideas = 581

   20.1.1 Structure Property = 582

   20.1.2 Heap-order Property = 584

   20.1.3 Allowed Operations = 584

  20.2 Implementation of the Basic Operations = 588

   20.2.1 insert = 588

   20.2.2 deleteMin = 591

  20.3 fixHeap : Linear Time Heap Construction = 593

  20.4 Advanced Operations : decreasekey and Merge 598

  20.5 Internal Sorting : Heapsort = 598

  20.6 External Sorting = 601

   20.6.1 Why We Need New Algorithms = 601

   20.6.2 Model for External Sorting = 602

   20.6.3 The Simple Algorithm = 602

   20.6.4 Multiway Merge = 604

   20.6.5 Polyphase Merge = 604

   20.6.6 Replacement Selection = 607

  Summary = 608

  Objects of the Game = 608

  Common Errors = 609

  On the Internet = 610

  Exercises = 610

  References = 612

Part Ⅴ : Advanced Data Structures

 CHAPTER 21 Splay Trees = 617

  21.1 Self-adjustment and Amortized Analysis = 617

   21.1.1 Amortized Time Bounds = 618

   21.1.2 A Simple Self-adjusting Strategy (The Does Not Work) = 619

  21.2 The Basic Bottom-up Splay Tree = 621

  21.3 Basic Splay Tree Operations = 623

  21.4 Analysis of Bottom-up Splaying = 624

   21.4.1 Proof of the Splaying Bound = 627

  21.5 Top-Down Splay Trees 630

  21.6 Implementation of top-down Splay trees = 633

  21.7 Comparison of the Splay Tree with Other Searh Trees = 636

  Summary = 640

  Objects of the Game = 640

  Common Errors = 640

  On the Internet = 641

  Exercises = 641

  References = 642

 CHAPTER 22 Merging Priority Queues = 643

  22.1 The Skew Heap = 643

   22.1.1 Merging Is Fundamental = 643

   22.1.2 Simplistic Merging of Heap-ordered Trees = 644

   22.1.3 The Skew Heap : A Simple Modification = 645

   22.1.4 Analysis of the Skew Heap = 646

  22.2 The Pairing Heap = 648

   22.2.1 Pairing Heap Operations and Theory = 649

   22.2.2 Implementation of the Pairing Heap = 651

   22.2.3 Application : Dijkstra's Shortest Weighted Path Algorithm = 660

  Summary = 660

  Objects of the Game = 661

  Common Errors = 661

  On the Internet = 661

  Exercises = 661

  References = 662

 CHAPTER 23 The Disjoint Set Class = 665

  23.1 Equivalence Relations = 665

  23.2 Dynamic Equivalence and Two Applications = 666

   23.2.1 Application #1 : Minimum Spanning Trees = 667

   23.2.2 Application #2 : The Nearest Common Ancestor Problem = 669

  23.3 The Quick-find Algorithm = 672

  23.4 The Quick-union Algorithm = 674

   23.4.1 Smart Union Algorithms = 676

   23.4.2 Path compression = 677

  23.5 Java Implementation = 679

  23.6 Worst Case for Union-by-rank and Path Compression = 681

   23.6.1 Analysis of the Union/find Algorithm = 682

  Summary = 689

  Objects of the Game = 689

  Common Errors = 690

  On the Internet = 690

  Exercises = 690

  References = 692

APPENDICES

 APPENDIX A Java Platforms = 697

  A.1 Setting the Environment = 697

   A.1.1 Unix Instructions = 698

   A.1.2 Windows 95/NT Instructions = 699

  A.2 Sun's JDK = 700

  A.3 Visual Development Environments = 700

   A.3.1 Symantec Cafe = 701

   A.3.2 Microsoft Visual J++ = 707

 APPENDIX B Operators = 713

 APPENDIX C Some Library Routines = 715

  C.1 Classes in Package Java.Lang = 715

   C.1.1 Character = 715

   C.1.2 Integer = 716

   C.1.3 Object = 717

   C.1.4 String = 718

   C.1.5 StringBuffer = 719

   C.1.6 System = 721

   C.1.7 Thread = 723

   C.1.8 Throwable = 723

  C.2 Classes in Package Java.io = 724

   C.2.1 BufferedReader = 725

   C.2.2 File = 725

   C.2.3 FileReader = 726

   C.2.4 InputStreamreader = 726

   C.2.5 PushbackReader = 727

  C.3 Classes in Package java.util = 727

   C.3.1 Random = 728

   C.3.2 StringTokenizer = 728

   C.3.3 Vector = 730

  On the Internet = 730

 APPENDIX D Grophical User Interfaces = 731

  D.1 The Abstract Window Toolkit = 713

  D.2 Basic Objects in the AWT = 732

   D.2.1 Component = 733

   D.2.2 Container = 734

   D.2.3 Top-level Windows = 734

   D.2.4 Panel = 736

   D.2.5 Important I/O Components = 736

  D.3 Basic AWT Principle = 741

   D.3.1 Layout Managers = 741

   D.3.2 Graphics = 745

   D.3.3 Events = 747

   D.3.4 Summary : Putting the Pieces Together = 750

  D.4 Animations and Threads = 750

  D.5 Applets = 753

   D.5.1 Hypertext Markup Language = 753

   D.5.2 Parameters = 756

   D.5.3 Applet Limitations = 756

   D.5.4 Making an Application an Applet = 758

   D.5.5 Applets with Animation = 760

  Summary = 762

  Objects of the Game = 762

  Common Errors = 764

  On the Internet = 765

  Exercises = 766

  References = 768

Index = 769



관련분야 신착자료

Harvard Business Review (2025)