Data Structures Using Java
Data Structures Using Java
D. S. Malik
P. S. Nair
THOMSON
COURSE T E C H N O L O G Y
Contents
PREFACE XXV
Analysis 3
Design 3
Implementation 4
Testing and Debugging 6
Algorithm Analysis: The Big-O Notation 8
User-Defined Classes 15
Constructors 18
Unified Modeling Language Diagrams 19
Variable Declaration and Object Instantiation 20
Accessing Class Members 23
Quick Review 62
Exercises 64
Programming Exercises 71
The Operator i n s t a n c e o f 99
Abstract Methods and Classes 104
Composition 105
Exception Handling 110
Java Exception Hierarchy 111
The Exception Hierarchy 115
Table of Contents xi
Exercises 157
Programming Exercises 165
Deletion 231
Building a Linked List 234
Building a Linked List Forward 234
Building a Linked List Backwards 238
Linked List as an ADT 240
Length of the List 245
Retrieve Data from the First and the Last Nodes 245
Insert First Node 246
Insert Last Node 247
Copy 247
Copy Constructor 249
Copy List 249
Definition of the c l a s s L i n k e d L i s t C l a s s 249
Unordered Linked Lists 250
Search List 251
Delete Node 252
Exercises 308
Programming Exercises 313
5. Recursion 317
Recursive Definitions 318
Exercises 355
Programming Exercises 357
6. Stacks 365
Stacks 366
Stack Operations 368
StackException Class 369
Implementation of Stacks as Arrays 370
Pop 377
Copy 378
Constructors 379
Copy Constructor 380
Queues 433
Queues 434
Server 461
Server List 465
Waiting Customers' Queue 469
Quick Review 478
Exercises 479
Programming Exercises 483
Exercises 517
Programming Exercises 519
Table of Contents xvii
1 1 . Graphs 671
Introduction 672
Graph Definitions and Notations 673
xx Data Structures Using Java
Class: I n t E l e m e n t 732
Class: L o n g E l e m e n t 735
Class: C h a r E l e m e n t 736
Class: F l o a t E l e m e n t 738
Class: D o u b l e E l e m e n t 739
Class: B o o l e a n E l e m e n t 741
Class: S t r i n g E l e m e n t 742
Using User-Defined Classes in a Program 744
Constructors 747
Methods 747
C l a s s : C h a r a c t e r (Package J a v a . l a n g ) 748
Constructor 748
Methods 748
Constructors 751
C l a s s : F i l e R e a d e r (Package j a v a . i o ) 751
Constructors 751
Methods 751
Class: F i l e W r i t e r (Package j a v a . i o ) 751
Constructors 751
Methods 752
Constructors 759
Methods 759
Class: J T e x t F i e l d (Package j a v a x . swing) 760
Constructors 760
Methods 761
Class: Long (Package j a v a . lang) 762
Named Constants 762
Constructors 762
Methods 762
Class: Math (Package j a v a . lang) 763
Methods 763
Class: P r i n t W r i t e r (Package j a v a . i o ) 764
Constructors 764
Methods 765
Class: S t a c k (Package j a v a . u t i l ) 766
Constructors 766
Methods 766
Class: S t r i n g (Package J a v a , lang) 766
Constructors 766
Methods 767
Class: S t r i n g T o k e n i z e r (Package j a v a . u t i l ) 769
Constructors 769
Methods 769
Table of Contents xxiii
v o i d Methods 793
Variables as Parameters 794
Arrays 795
Chapter 6 805
Chapter 7 805
Chapter 8 806
Chapter 9 807
Chapter 10 808
Chapter 11 810
INDEX 813