Full download Object Oriented Data Structures Using Java 4th Edition Dale pdf docx

gorelficke2x 131 views 55 slides Dec 20, 2024
Slide 1
Slide 1 of 55
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55

About This Presentation

Get Object Oriented Data Structures Using Java 4th Edition Dale instantly by making a payment at https://textbookfull.com/product/object-oriented-data-structures-using-java-4th-edition-dale. Discover additional textbooks and ebooks in https://textbookfull.com Download full PDF chapter.


Slide Content

Download the Full Version of textbook for Fast Typing at textbookfull.com
Object Oriented Data Structures Using Java 4th
Edition Dale
https://textbookfull.com/product/object-oriented-data-
structures-using-java-4th-edition-dale/
OR CLICK BUTTON
DOWNLOAD NOW
Download More textbook Instantly Today - Get Yours Now at textbookfull.com

Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.
Object Orientation Abstraction and Data Structures Using
Scala Second Edition Lacher
https://textbookfull.com/product/object-orientation-abstraction-and-
data-structures-using-scala-second-edition-lacher/
textboxfull.com
A Functional Approach to Java: Augmenting Object-Oriented
Java Code with Functional Principles 1st Edition Ben
Weidig
https://textbookfull.com/product/a-functional-approach-to-java-
augmenting-object-oriented-java-code-with-functional-principles-1st-
edition-ben-weidig/
textboxfull.com
Practical object-oriented design: an agile primer using
Ruby Second Edition Metz
https://textbookfull.com/product/practical-object-oriented-design-an-
agile-primer-using-ruby-second-edition-metz/
textboxfull.com
Swift 3 Object Oriented Programming Gaston C. Hillar
https://textbookfull.com/product/swift-3-object-oriented-programming-
gaston-c-hillar/
textboxfull.com

Introduction to Java Programming and Data Structures
Comprehensive Version Y Daniel Liang
https://textbookfull.com/product/introduction-to-java-programming-and-
data-structures-comprehensive-version-y-daniel-liang/
textboxfull.com
Problem Solving in Data Structures & Algorithms Using C
First Edition Jain
https://textbookfull.com/product/problem-solving-in-data-structures-
algorithms-using-c-first-edition-jain/
textboxfull.com
Programming In C Object Oriented Features 1st Edition
Laxmisha Rai
https://textbookfull.com/product/programming-in-c-object-oriented-
features-1st-edition-laxmisha-rai/
textboxfull.com
Advanced Object-Oriented Programming in R: Statistical
Programming for Data Science, Analysis and Finance 1st
Edition Thomas Mailund
https://textbookfull.com/product/advanced-object-oriented-programming-
in-r-statistical-programming-for-data-science-analysis-and-
finance-1st-edition-thomas-mailund/
textboxfull.com
Think Data Structures: Algorithms and Information
Retrieval in Java 1st Edition Allen B. Downey
https://textbookfull.com/product/think-data-structures-algorithms-and-
information-retrieval-in-java-1st-edition-allen-b-downey/
textboxfull.com

Java

Fourth Edition
Nell Dale
University of Texas, Austin
Daniel T. Joyce
Villanova University
Chip Weems
University of Massachusetts, 
Amherst
Java
using
Object-Oriented   
Data Structures

World Headquarters
Jones & Bartlett Learning
5 Wall Street
Burlington, MA 01803
978-443-5000
[email protected]
www.jblearning.com
Jones & Bartlett Learning books and products are available through most bookstores and online booksellers. To contact Jones & Bartlett
Learning directly, call 800-832-0034, fax 978-443-8000, or visit our website, www.jblearning.com.
Substantial discounts on bulk quantities of Jones & Bartlett Learning publications are available to corporations, professional associa-
tions, and other qualified organizations. For details and specific discount information, contact the special sales department at Jones &
Bartlett Learning via the above contact information or send an email to [email protected].
Copyright © 2018 by Jones & Bartlett Learning, LLC, an Ascend Learning Company
All rights reserved. No part of the material protected by this copyright may be reproduced or utilized in any form, electronic or mechani-
cal, including photocopying, recording, or by any information storage and retrieval system, without written permission from the copyright
owner.
The content, statements, views, and opinions herein are the sole expression of the respective authors and not that of Jones & Bartlett Learn-
ing, LLC. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise
does not constitute or imply its endorsement or recommendation by Jones & Bartlett Learning, LLC and such reference shall not be used for
advertising or product endorsement purposes. All trademarks displayed are the trademarks of the parties noted herein. Object-Oriented Data
Structures Using Java, Fourth Edition is an independent publication and has not been authorized, sponsored, or otherwise approved by the
owners of the trademarks or service marks referenced in this product.
09820-4
Production Credits
VP, Executive Publisher: David D. Cella
Acquisitions Editor: Laura Pagluica
Editorial Assistant: Taylor Ferracane
Director of Vendor Management: Amy Rose
Marketing Manager: Amy Langlais
VP, Manufacturing and Inventory Control: Therese Connell
Composition and Project Management: S4Carlisle Publishing Services
Cover Design: Kristin E. Parker
Text Design: Scott Moden
Rights & Media Specialist: Merideth Tumasz
Media Development Editor: Shannon Sheehan
Cover Image: © Ake13bk/Shutterstock
Printing and Binding: Edwards Brothers Malloy
Cover Printing: Edwards Brothers Malloy
Library of Congress Cataloging-in-Publication Data
Names: Dale, Nell (Nell B.), author. | Joyce, Daniel T., author. | Weems,
Chip., author.
Title: Object-oriented data structures using Java / Nell Dale, Daniel T.
Joyce, Chip Weems.
Description: Fourth edition. | Burlington, MA : Jones & Bartlett Learning,
[2017]
Identifiers: LCCN 2016025145 | ISBN 9781284089097 (casebound)
Subjects: LCSH: Object-oriented programming (Computer science) | Data
structures (Computer science) | Java (Computer program language)
Classification: LCC QA76.64 .D35 2017 | DDC 005.13/3--dc23 LC record available at
https://lccn.loc.gov/2016025145
6048
Printed in the United States of America
20 19 18 17 16 10 9 8 7 6 5 4 3 2 1

To Alfred G. Dale
ND
To Kathy, Tom, and Julie, thanks for the love and support
DJ
To Lisa, Charlie, and Abby, thank you . . .
CW

© Ake13bk/Shutterstock
Objectb-rc-rib-ncd ri-bDaracS-cn-Object-Oriented Data Structures Using Java™u-siaU-gccJ-v bU™
bSrU-rib-Ajoc aritaew-v co AttaSow-ASD-Ur derd aSo-rbeiSahdbU-cn-A-r ADaracSAj-DArA-Ur derd bU-
ecd Ub-aS-AS-cgyber™c abSrbD-ecSrbEru-fcdljj-naSD-rib-nAtajaA -rcvaeU-cn-jaSJbD-jaUrUw- bed UacSw-
UrAeJUw-hdbdbUw-ecjjberacSUw-aSDbEbD-jaUrUw-r bbUw-tAvUw-v ac arR-hdbdbUw-o AviUw-Uc raSow-UbA eiaSow-
ASD-ectvjbEarR-ASAjRUaUw-Ajj-ecTb bD-n ct-AS-cgyber™c abSrbD-vcaSr-cn-Tabm-dUaSo-IATAu-Ob-Ur bUU-
UcnrmA b-bSoaSbb aSo-v aSeavjbU-ri cdoicdrw-aSejdDaSo-tcDdjA apAracSw-aSnc tAracS-iaDaSow-DArA-
AgUr AeracSw-UrbvmaUb- bnaSbtbSrw-rib-dUb-cn-TaUdAj-AaDUw-rib-ASAjRUaU-cn-Ajoc aritUw-ASD-UcnrmA b-
Tb anaeAracS-tbricDUu
To the Student
fcd-JScm-riAr-AS-Ajoc arit-aU-A-UbhdbSeb-cn-dSAtgaodcdU-aSUr deracSU-nc -UcjTaSo-A-v cgjbtu-
fcd-eAS-rAJb-A-v cgjbt-cn-tcDb Arb-ectvjbEarRw-DbUaoS-A-UtAjj-Ubr-cn-ejAUUbUxcgyberU-riAr-mc J-
rcobrib -rc-UcjTb-rib-v cgjbtw-ecDb-rib-tbricD-Ajoc aritU-SbbDbD-rc-tAJb-rib-cgyberU-mc Jw-ASD-
DbtcSUr Arb-rib-ec  berSbUU-cn-Rcd -UcjdracSu
/joc aritU-DbUe agb-AeracSUu-sibUb-AeracSU-tASavdjArb-DArAu-Cc -tcUr-aSrb bUraSo-v cgjbtU-
riAr-A b-UcjTbD-dUaSo-ectvdrb Uw-rib-Ur derd b-cn-rib-DArA-aU-ydUr-AU-atvc rASr-AU-rib-Ur derd b-
cn-rib-Ajoc aritU-dUbD-rc-tASavdjArb-rib-DArAu-,UaSo-riaU-rbEr-Rcd-majj-DaUecTb -riAr-rib-mAR-
Rcd-Ur derd b-DArA-AnnberU-icm-bnnaeabSrjR-Rcd-eAS-dUb-rib-DArAM-Rcd-majj-Ubb-icm-rib-SArd b-cn-
rib-v cgjbt-Rcd-A b-ArrbtvraSo-rc-UcjTb-DaerArbU-Rcd -Ur derd aSo-DbeaUacSUM-ASD-Rcd-majj-jbA S-
Agcdr-rib-DArA-Ur derd bU-riAr-ectvdrb -UeabSraUrU-iATb-DbTbjcvbD-cTb -rib-RbA U-rc-ibjv-UcjTb-
problems.
Object-Oriented Programming with Java
Ld -v atA R-ocAj-aU-rc-v bUbSr-gcri-rib-r ADaracSAj-ASD-tcDb S-DArA-Ur derd b-rcvaeU-mari-AS-
btviAUaU-cS-v cgjbt-UcjTaSo-ASD-UcnrmA b-DbUaoSu-,UaSo-rib-IATA-v co AttaSo-jASodAob-AU-A-
Tbiaejb-nc -v cgjbt-UcjdracSUw-icmbTb w-v bUbSrU-AS-cvvc rdSarR-nc -UrdDbSrU-rc-bEvASD-riba -
Preface

Preface v
nJec cJbcuCSGcudSJSehjob-SmbhvbJeec-vS J-vOJvoSJ-jSudoShgNotuwhbco-uojSmJbJjcverSDPShObSjJuJS
PubOtuOboSth1obJvoSO-nh jPFSGoSc-ubhjOtoSJ-jSOPoSudoSJmmbhmbcJuoSzJ1JSth-PubOtuPSudJuSPOmmhbuShObS
mbceJbCSvhJ rS5uJbuc-vSoJb CSJ-jSth-uc-Oc-vSudbhOvdhOuSudoSuoquFSGoSc-ubhjOtoSJ-jSoqmJ-jSh-SudoS
OPoShnSeJ-CSzJ1JSnoJuOboPSPOtdSJPSt JPPoPFShgNotuPFSvo-obctPFSmh CehbmdcPeFSmJtaJvoPFSc-uobnJtoPFS
 cgbJbCSt JPPoPFSc-dobcuJ-toFSoqtomuch-PFSJ-jSudboJjPrSToSJ PhSOPoSR-c1obPJ Slhjo c-vS6J-vOJvoS
LRl67St JPPSjcJvbJePSudbhOvdhOuSuhSdo mSehjo SJ-jS1cPOJ c2oShObShgNotuPFSt JPPoPFSc-uobnJtoPFS
Jmm ctJuch-PFSJ-jSudocbSc-uobbo Juch-PdcmPr
Features
Data AbstractionS B-SudcPSuoquSGoS1coGShObSjJuJSPubOtuOboPSnbheSudbooSjcnnobo-uSmobPmotuc1oPyS
udocbSPmotcnctJuch-FSudocbSJmm ctJuch-FSJ-jSudocbScem oeo-uJuch-rSidoSPmotcnctJuch-SjoPtbcgoPSudoS
 hvctJ ShbSJgPubJtuS o1o 8what udoS hvctJ Sbo Juch-PdcmPSJeh-vSudoSjJuJSo oeo-uPSJboSJ-jSwhat 
hmobJuch-PStJ-SgoSmobnhbeojSh-SudoSPubOtuOborSidoSJmm ctJuch-S o1o FSPheouceoPStJ  ojSudoSt co-uS
 o1o FScPSth-tob-ojSGcudSdhGSudoSjJuJSPubOtuOboScPSOPojSuhSPh 1oSJSmbhg oe8why udoShmobJuch-PS
jhSGdJuSudoCSjhrSidoScem oeo-uJuch-S o1o Sc-1h 1oPSudoSthjc-vSjouJc P8how udoSPubOtuOboPS
J-jShmobJuch-PSJboScem oeo-uojrSB-ShudobSGhbjPSGoSuboJuShObSjJuJSPubOtuOboPSJPSJgPubJtuSjJuJS
uCmoPSLDMiP7r
Efficiency AnalysisS B-S9dJmuobS0SGoSc-ubhjOtoShbjobShnSvbhGudSonnctco-tCSJ-J CPcPSOPc-vSJSO-csOoS
JmmbhJtdSc-1h 1c-vSudoSc-uobJtuch-ShnSuGhSPuOjo-uPSm JCc-vSJSvJeorSiceoSJ-jSPmJtoSJ-J CPcPScPS
th-PcPuo-u CSJmm cojSudbhOvdhOuSudoSuoquFSJ  hGc-vSOPSuhSthemJboSJ-jSth-ubJPuSjJuJSPubOtuOboS
cem oeo-uJuch-PSJ-jSudoSJmm ctJuch-PSudJuSOPoSudoer
Recursion TreatmentS .otObPch-ScPSc-ubhjOtojSoJb CSL9dJmuobS,7SJ-jSOPojSudbhOvdhOuSudoSbow
eJc-jobShnSudoSuoqurSToSmboPo-uSJSjoPcv-SJ-jSJ-J CPcPSJmmbhJtdSuhSbotObPch-SgJPojSh-SJ-PGobc-vS
udbooSPcem oSsOoPuch-PrSD-PGobc-vSudoSsOoPuch-PFSGdctdSJboSgJPojSh-SnhbeJ Sc-jOtuc1oSboJPh-c-vFS
 oJjPSudoSmbhvbJeeobSuhSJSPh cjSbotObPc1oSjoPcv-SJ-jSmbhvbJer
Interesting ApplicationsS EcvduSmbceJbCSjJuJSPubOtuOboPSLPuJtaPFSsOoOoPFSth  otuch-PFSc-joqojS
 cPuPFSubooPFSeJmPFSmbchbcuCSsOoOoPFSJ-jSvbJmdP7SJboSuboJuojSc-SPomJbJuoStdJmuobPSudJuSc-t OjoSudocbS
jonc-cuch-FSPo1obJ Scem oeo-uJuch-PFSJ-jSh-oShbSehboSc-uoboPuc-vSJmm ctJuch-PSgJPojSh-SudocbSOPorS
Dmm ctJuch-PSc-1h 1oFSnhbSoqJem oFSgJ J-tojSoqmboPPch-PFSmhPuncqSoqmboPPch-PFSceJvoSvo-obJuch-S
L-oGx7FSnbJtuJ PSL-oGx7FSsOoOoSPceO Juch-FStJbjSjotaPSJ-jSvJeoPSL-oGx7FSuoquSJ-J CPcPSL-oGx7FSubooS
J-jSvbJmdSubJ1obPJ PFSJ-jSgcvSc-uovobPr
Robust ExercisesS ToSJ1obJvoSehboSudJ-S:fSoqobtcPoPSmobStdJmuobrSidoSoqobtcPoPSJboShbvJ-c2ojSgCS
tdJmuobSPotuch-PSuhSeJaoSudoeSoJPcobSnhbSChOSuhSeJ-JvorSidoCS1JbCSc-S o1o ShnSjcnnctO uCFSc-t Ojc-vS
PdhbuSJ-jS h-vSmbhvbJeec-vSmbhg oePSLeJbaojSGcudSImbhvbJeec-vwbosOcbojVScth-P8h-oScth-S
uhSc-jctJuoSPdhbuSoqobtcPoPSJ-jSuGhScth-PSnhbSmbhNotuP7FSudoSJ-J CPcPShnSJ vhbcudePFSJ-jSmbhg oePS
uhSuoPuSPuOjo-uPpSO-jobPuJ-jc-vShnSJgPubJtuSth-tomuPrSB-SudcPSojcuch-SGoSdJ1oSPuboJe c-ojSudoS
mbo1chOPSoqobtcPoPFSJ  hGc-vSOPSuhSJjjSo1o-SehboShmuch-PSnhbSChOSuhStdhhPoSnbherSB-SmJbuctO JbS
GoSdJ1oSJjjojSPo1obJ S JbvobSmbhvbJeec-vSoqobtcPoPSuhSeJ-CShnSudoStdJmuobPr
Input/Output OptionsS BuScPSjcnnctO uSuhSa-hGSGdJuSgJtavbhO-jSudoSPuOjo-uPSOPc-vSJSjJuJSPubOtw
uOboPSuoquSGc  SdJ1oSc-SzJ1JSBkQrSihSJ  hGSJ  SudoSPuOjo-uPSOPc-vShObSuoquSuhSth-to-ubJuoSh-SudoS

vi Preface
v atA R-rcvae-cn-DArA-Ur derd bUw-mb-dUb-rib-UatvjbUr-WxL-Avv cAei-mb-eASw-SAtbjR-A-ecttASD-
jaSb-aSrb nAebu-™cmbTb w-rc-Udvvc r-ricUb-rbAeib U-ASD-UrdDbSrU-mic-v bnb -rc-mc J-mari-o Avia™
eAj-dUb -aSrb nAebU-Bš,WUNw-mb-v cTaDb-š,WU-nc -tASR-cn-cd -AvvjaeAracSUu-Ld -tcDdjA -Avv cAei-
rc-v co At-DbUaoS-Udvvc rU-riaU-Avv cAeiŠcd -AvvjaeAracSU-UbvA Arb-rib-dUb -aSrb nAeb-ecDbw-
v cgjbt-UcjdracS-ecDbw-ASD-/‹s-atvjbtbSrAracS-ecDb-aSrc-UbvA Arb-ejAUUbUu
Concurrency Coverage- Ob-A b-vjbAUbD-rc-gb-cSb-cn-rib-cSjR-DArA-Ur derd bU-rbErU-rc-ADD bUU-rib-
rcvaeU-cn-ecSed  bSeR-ASD-URSei cSapAracSw-miaei-A b-o cmaSo-aS-atvc rASeb-AU-ectvdrb -URUrbtU-
tcTb-rc-dUaSo-tc b-ec bU-ASD-ri bADU-rc-cgrAaS-ADDaracSAj-vb nc tASeb-mari-bAei-Sbm-obSb AracSu-
Ob-aSr cDdeb-riaU-rcvae-aS-GberacS-•u›w-—ŒcSed  bSeRw-WSrb nb bSebw-ASD-GRSei cSapAracSw˜-mib b-
mb-UrA r-mari-rib-gAUaeU-cn-IATA-ri bADUw-ecSraSdb-ri cdoi-bEAtvjbU-cn-ri bAD-aSrb nb bSeb-ASD-
URSei cSapAracSw-ASD-edjtaSArb-aS-A-DaUedUUacS-cn-bnnaeabSeR-ecSeb SUu
New to the Fourth Edition
siaU-bDaracS- bv bUbSrU-A-tAyc - bTaUacS-cn-rib-rbErlU-tArb aAjw-Ajricdoi-rib-viajcUcviR-ASD-UrRjb-
riAr-cd -jcRAj-ADcvrb U-iATb-o cmS-rc-Avv beaArb- btAaS-dSeiASobDu-Ob- btcTbD-tArb aAj-mb-
nbjr-mAU- bDdSDASr-c -cn-jbUUb xcdrDArbD-atvc rASeb-rc-rib-ec b-rcvae-cn-DArA-Ur derd bUw-ADDbD-
Sbm-JbR-tArb aAjw-ASD- bmc JbD-tdei-cn-rib-tArb aAj-riAr-mb-Jbvru-/jricdoi-rib-jbSori-cn-rib-
rbErgccJ-mAU- bDdebD-gR-Agcdr-Ž–œw-rib-ecTb Aob-cn-DArA-Ur derd bU-iAU-gbbS-bEvASDbDu-Ob-
gbjabTb-riaU-Sbm-bDaracS-aU-A-o bAr-atv cTbtbSr-cTb -v bTacdU-bDaracSU-ASD-icvb-Rcd-Dcw-rccu-
PAyc -eiASobU-aSejdDb‰
žCGatvjanabD-/ eiarberd b‰-Ob-ecSraSdb-rc-dUb-rib-IATA-aSrb nAeb-ecSUr der-rc--
DbnaSb-rib-AgUr Aer-Tabm-cn-cd -/‹sUw-gdr-mb-iATb- bDdebD-rib-Sdtgb -cn-jbTbjU-
cn-aSib arASebw-UatvjanRaSo-rib-A eiarberd b-ASD-tAJaSo-ar-bAUab -rc-dSDb UrASD-
ASD-dUbu
žCŸbm-ŒiAvrb U‰-ŒiAvrb -¡w-—sib-ŒcjjberacS-/‹sw˜-ASD-ŒiAvrb -¢w-—sib-PAv-/‹sw˜-A b-
g ASD-Sbmu-sib-ŒcjjberacS-/‹s-tArb aAj-aSr cDdebU-rib-aDbA-cn-A-DArA-Ur derd b-AU-
A- bvcUarc R-ASD-ecSebSr ArbU-cS-Urc Aob-ASD- br abTAj-cn-DArA-gAUbD-cS-JbR-Arr a™
gdrbUu-sib-PAv-/‹s-iAU-gbectb-aSe bAUaSojR-atvc rASr-mari-rib- aUb-aS-vcvdjA arR-
cn-Ue avraSo-jASodAobU-mari-gdajr™aS-AUUceaAraTb-A  ARUu
žCŸbm-GberacS‰-GberacS-Žu£w-—ŒctvA aSo-/joc aritU‰-L Db -cn-š cmri-/SAjRUaUw˜-mAU-
ectvjbrbjR- bm arrbS-ASD-nbArd bU-AS-aSr cDderacS-rc-bnnaeabSeR-ASAjRUaU-D aTbS-gR-
A-oAtb-vjARbD-gbrmbbS-rmc-UrdDbSrUw-vjdU-ASAjRUaU-cn-UbhdbSraAj-UbA eiw-gaSA R-
UbA eiw-ASD-UbhdbSraAj-Uc r-Ajoc aritUu
žCŸbm-GberacSU‰-WS- bUvcSUb-rc- bADb lU-UdoobUracSUw-ŒiAvrb -’w-—‘bed UacSw˜-nbArd bU-
rmc-Sbm-UberacSU‰-GberacS-’u’w-—‘bed UaTb-¤ cebUUaSo-cn-/  ARUw˜-aU-DbTcrbD-rc- bed ™
UaTb-v cebUUaSo-cn-A  ARU-ASD-GberacS-’u•w-—‘bed UaTb-¤ cebUUaSo-cn-FaSJbD-FaUrUw˜-aU-
DbTcrbD-rc- bed UaTb-v cebUUaSo-cn-jaSJbD-jaUrUu-sibUb-Sbm-UberacSU-v cTaDb-v AeraeAj-
bEAtvjbU-cn-rib-dUb-cn- bed UacSw-gbnc b-rib- bADb -tcTbU-cS-rc-rib-jbUU-v AeraeAj-
gdr-SbTb ribjbUU-vcvdjA -scmb U-cn-™ASca-bEAtvjb-ecTb bD-aS-GberacS-’u¡w-—scmb Uu˜
žCŸbm-GberacS‰-C AerAjU”-/-ndS-UberacS- bjArbD-rc- bed UaTbjR-obSb AraSo-n AerAj™gAUbD-
atAobU-Scm-m AvU-dv-rib-bEAtvjbU-cn-ŒiAvrb -’w-—‘bed UacSu˜

Preface vii
žCŸoGS5otuch-PySToSJjjojSI¥JbcJuch-PVSPotuch-PSuhSudoS5uJtaFS¦OoOoFS9h  otuch-FS6cPuFS
ibooFSJ-jSlJmStdJmuobPrSB-SudoSmbceJbCSoqmhPcuch-ShnSoJtdShnSudoPoSDMiPSGoSbothbjS
joPcv-SjotcPch-PSJ-jSPmotcnCSudoShmobJuch-PSuhSgoSPOmmhbuojSgCSudoSDMirSToSJ PhS
jo1o hmShbSJuS oJPuSjcPtOPPS1JbchOPScem oeo-uJuch-SJmmbhJtdoPFSc-SehPuStJPoPSdcvdw
 cvduc-vSh-oSJbbJCwgJPojSJmmbhJtdSJ-jSh-oSbonobo-tok c-aojw cPuwgJPojSJmmbhJtdrS
idoSI¥JbcJuch-PVSPotuch-SjcPtOPPoPSJ uob-JuoSJmmbhJtdoPSuhSjonc-c-vkcem oeo-uc-vS
udoSDMiSJ-jSc-SehPuStJPoPSbo1coGPSudoSDMiSthO-uobmJbuPSJ1Jc Jg oSc-SudoSPuJ-jJbjS
zJ1JS6cgbJbCrS5heoShnSudoPoSPotuch-PSJ PhSc-ubhjOtoSbo JuojSDMiPFSnhbSoqJem oFSc-SudoS
I¥JbcJuch-PVSPotuch-ShnSudoS9h  otuch-StdJmuobSGoSjonc-oSJ-jSjcPtOPPSghudSudoS5ouS
J-jS§JvSDMiPr
žCU hPPJbCySidoSuoqupPSv hPPJbCSdJPSJ GJCPSgoo-SJ1Jc Jg oSh- c-orSTcudSudcPSojcuch-SGoS
eJaoScuSJ1Jc Jg oSJPSDmmo-jcqSErSidbhOvdhOuSudoSuoquSGoSdcvd cvduScemhbuJ-uSuobePS
udJuSecvduSgoSO-nJec cJbSuhSudoSPuOjo-uSc-SgreenFSudoSncbPuSuceoSudoCSJboSnoJuObojFSuhS
c-jctJuoSudJuSudocbSjonc-cuch-StJ-SgoSnhO-jSc-SudoSv hPPJbCr
Prerequisite Assumptions
B-SudcPSghhaFSGoSJPPOeoSudJuSboJjobPSJboSnJec cJbSGcudSudoSnh  hGc-vSzJ1JSth-PubOtuPy
žC§Oc uwc-SPcem oSjJuJSuCmoPSJ-jSudoSJbbJCSuCmo
žC9h-ubh SPubOtuOboPSwhileFSdoFSforFSifFSJ-jSswitch
žC9boJuc-vSJ-jSc-PuJ-ucJuc-vShgNotuP
žC§JPctSOPobwjonc-ojSt JPPoPy
Pr1JbcJg oPSJ-jSeoudhjP
Prth-PubOtuhbPFSeoudhjSmJbJeouobPFSJ-jSudoSreturn statement
Pr1cPcgc cuCSehjcncobP
žC9heeh- CSOPojSzJ1JS6cgbJbCS9 JPPoPySInteger, Math, Random, ScannerFSStringFSS
J-jSSystem
Chapter Content
Chapter 1 cPSJ  SJghOuSGetting OrganizedrSD-Sh1ob1coGShnShgNotuShbco-uJuch-SPuboPPoPSeotdJw
-cPePSnhbShbvJ-c2c-vShgNotuPSJ-jSt JPPoPrSidoSzJ1JSoqtomuch-SdJ-j c-vSeotdJ-cPePFSOPojSuhS
hbvJ-c2oSboPmh-PoSuhSO-OPOJ SPcuOJuch-PFSJboSc-ubhjOtojrSMJuJSPubOtuOboPSJboSmbo1coGojSJ-jSudoS
uGhSnO-jJeo-uJ S J-vOJvoSth-PubOtuPSudJuSJboSOPojSuhScem oeo-uSudhPoSPubOtuOboPFSudoSJbbJCS
J-jSudoSbonobo-toSL c-akmhc-uob7FSJboSjcPtOPPojrSidoStdJmuobSth-t OjoPSGcudSJS hhaSJuSonnctco-tCS
J-J CPcP8dhGSGoSo1J OJuoSJ-jSthemJboSJ vhbcudePr
Chapter 2 mboPo-uPSThe Stack ADTrSidoSth-tomuShnSJgPubJtuSjJuJSuCmoSLDMi7ScPSc-ubhjOtojrS
idoSPuJtaScPS1coGojSnbheSudbooSjcnnobo-uS o1o PySudoSJgPubJtuFSJmm ctJuch-FSJ-jScem oeo-uJuch-S
 o1o PrSidoSzJ1JSc-uobnJtoSeotdJ-cPeScPSOPojSuhSPOmmhbuSudcPSudboowucobojS1coGrSToSJ PhSc-1oPucvJuoS
OPc-vSvo-obctPSuhSPOmmhbuSvo-obJ  CSOPJg oSDMiPrSidoS5uJtaSDMiScPScem oeo-uojSOPc-vSghudSJbbJCPS
J-jSbonobo-toPrSihSPOmmhbuSudoSbonobo-towgJPojSJmmbhJtdSGoSc-ubhjOtoSudoS c-aojS cPuSPubOtuOborS
5Jem oSJmm ctJuch-PSc-t OjoSjouobec-c-vScnSJSPouShnSvbhOmc-vSPCegh PScPSGo  SnhbeojSJ-jSudoS
o1J OJuch-ShnSmhPuncqSoqmboPPch-Pr

viiiPreface
Chapter 3 jcPtOPPoPSRecursionFSPdhGc-vSdhGSbotObPch-StJ-SgoSOPojSuhSPh 1oSmbhvbJeec-vS
mbhg oePrSDSPcem oSudboowsOoPuch-Suotd-csOoScPSc-ubhjOtojSnhbS1obcnCc-vSudoSthbbotu-oPPShnSbow
tObPc1oSeoudhjPrS5Jem oSJmm ctJuch-PSc-t OjoSJbbJCSmbhtoPPc-vFS c-aojS cPuSmbhtoPPc-vFSudoSt JPPctS
ihGobPShnSWJ-hcFSJ-jSnbJtuJ Svo-obJuch-rSDSjouJc ojSjcPtOPPch-ShnSdhGSbotObPch-SGhbaPSPdhGPSdhGS
botObPch-StJ-SgoSbom JtojSGcudScuobJuch-SJ-jSPuJtaPr
Chapter 4 mboPo-uPSThe Queue ADTrSBuScPSJ PhSncbPuSth-PcjobojSnbheScuPSJgPubJtuSmobPmotuc1oFS
nh  hGojSgCSJSnhbeJ SPmotcnctJuch-FSJ-jSudo-Scem oeo-uojSOPc-vSghudSJbbJCwgJPojSJ-jSbonobo-tow
gJPojSJmmbhJtdoPrSEqJem oSJmm ctJuch-PSc-t OjoSJ-Sc-uobJtuc1oSuoPuSjbc1obFSJSmJ c-jbheoStdotaobFS
J-jSPceO Juc-vSJSPCPuoeShnSboJ wGhb jSsOoOoPrS3c-J  CFSGoS hhaSJuSzJ1JpPSth-tObbo-tCSJ-jSPC-tdbhw
-c2Juch-SeotdJ-cPePFSoqm Jc-c-vScPPOoPShnSc-uobnobo-toSJ-jSonnctco-tCr
Chapter 5 jonc-oPSThe Collection ADTrSDSnO-jJeo-uJ SDMiFSudoS9h  otuch-FSPOmmhbuPSPuhbc-vS
c-nhbeJuch-SJ-jSudo-Sboubco1c-vScuS JuobSgJPojSh-ScuPSth-uo-urSDmmbhJtdoPSnhbSthemJbc-vShgNotuPS
nhbSosOJ cuCSJ-jShbjobSJboSbo1coGojrS9h  otuch-Scem oeo-uJuch-PSOPc-vSJ-SJbbJCFSJSPhbuojSJbbJCFS
J-jSJS c-aojS cPuSJboSjo1o hmojrSDSuoquSmbhtoPPc-vSJmm ctJuch-SmobecuPSthemJbcPh-ShnSudoScem ow
eo-uJuch-SJmmbhJtdoPSnhbSonnctco-tCrSidoSI¥JbcJuch-PVSPotuch-Sc-ubhjOtoPSuGhSehboSGo  wa-hG-S
DMiPySudoS§JvSJ-jSudoS5our
Chapter 6 nh  hGPSOmSGcudSJSehboSPmotcnctS9h  otuch-SDMiFSThe List ADTrSB-SnJtuFSudoSnh  hGSc-vS
uGhStdJmuobPSJ PhSjo1o hmS9h  otuch-SDMiPrSBuobJuch-ScPSc-ubhjOtojSdoboSJ-jSudoSOPoShnSJ-h-CehOPS
c--obSt JPPoPSuhSmbh1cjoScuobJuhbPScPSmboPo-uojrSDPSGcudSudoS9h  otuch-SDMiSGoSjo1o hmSJbbJCFSPhbuojS
JbbJCFSJ-jS c-aojw cPu¨gJPojScem oeo-uJuch-PrSidoSI¥JbcJuch-PVSPotuch-Sc-t OjoPSJ-SoqJem oShnS
dhGSuhSIcem oeo-uVSJS c-aojS cPuSGcudc-SJ-SJbbJCrSDmm ctJuch-PSc-t OjoSJStJbjSjotaSehjo Sm OPS
PheoStJbjSvJeoPFSJ-jSJS§cvSB-uovobSt JPPrSidcPS JuuobSJmm ctJuch-Sjoeh-PubJuoPSdhGSGoSPheouceoPS
joPcv-SPmotcJ c2ojSDMiPSnhbSPmotcnctSmbhg oePr
Chapter 7 jo1o hmPSThe Binary Search Tree ADTrSBuSbosOcboPSehPuShnSudoStdJmuobSNOPuSuhS
joPcv-SJ-jStboJuoShObSbonobo-towgJPojScem oeo-uJuch-ShnSudcPSbo Juc1o CSthem oqSPubOtuOborSidoS
tdJmuobSJ PhSjcPtOPPoPSubooPSc-Svo-obJ SLc-t Ojc-vSgboJjudwncbPuSJ-jSjomudwncbPuSPoJbtdc-v7SJ-jSudoS
mbhg oeShnSgJ J-tc-vSJSgc-JbCSPoJbtdSuboorSDSGcjoS1JbcouCShnSPmotcJ wmObmhPoSJ-jSPo nwgJ J-tc-vS
ubooPSJboSc-ubhjOtojSc-SudoSI¥JbcJuch-PVSPotuch-r
Chapter 8 mboPo-uPSThe Map ADTFSJ PhSa-hG-SJPSJSPCegh SuJg oFSjctuch-JbCFShbSJPPhtcJuc1oS
JbbJCrSiGhScem oeo-uJuch-PSJboSjo1o hmojFSh-oSudJuSOPoPSJ-SArrayListSJ-jSudoShudobSudJuSOPoPSJS
dJPdSuJg orSDS JbvoSmJbuShnSudoStdJmuobScPSjo1huojSuhSudcPS JuuobScem oeo-uJuch-SJ-jSudoScemhbuJ-uS
th-tomuShnSdJPdc-vFSGdctdSmbh1cjoPSJS1obCSonnctco-uScem oeo-uJuch-ShnSJSlJmrSidoSI¥JbcJuch-PVS
Potuch-SjcPtOPPoPSJSeJmwgJPojSdCgbcjSjJuJSPubOtuOboSm OPSzJ1JpPSPOmmhbuSnhbSdJPdc-vr
Chapter 9 c-ubhjOtoPSTheCPriority Queue ADTFSGdctdScPSt hPo CSbo JuojSuhSudoS¦OoOoSgOuSGcudS
JSjcnnobo-uSJttoPPc-vSmbhuhth rSidcPSPdhbuStdJmuobSjhoPSmboPo-uSJSPhbuojSJbbJCwgJPojScem oeo-uJw
uch-FSgOuSehPuShnSudoStdJmuobSnhtOPoPSh-SJSt o1obFSc-uoboPuc-vFSJ-jS1obCSonnctco-uScem oeo-uJuch-S
tJ  ojSJSWoJmr
Chapter 10 th1obPSThe Graph ADT, c-t Ojc-vScem oeo-uJuch-SJmmbhJtdoPSJ-jSPo1obJ S
cemhbuJ-uSvbJmdwbo JuojSJ vhbcudePSLjomudwncbPuSPoJbtdFSgboJjudwncbPuSPoJbtdFSmJudSoqcPuo-toFS
PdhbuoPuSmJudPFSJ-jSth--otuojSthemh-o-uP7rSidoSvbJmdSJ vhbcudePSeJaoSOPoShnSPuJtaPFSsOoOoPFS
J-jSmbchbcuCSsOoOoPFSudOPSghudSboc-nhbtc-vSoJb cobSeJuobcJ SJ-jSjoeh-PubJuc-vSudoSvo-obJ SOPw
Jgc cuCShnSudoPoSPubOtuOboPr

Preface ix
Chapter 11 mboPo-uPkbo1coGPSJS-OegobShnSSorting and Searching AlgorithmsrSidoSPhbuc-vS
J vhbcudePSudJuSJboSc  OPubJuojFScem oeo-uojFSJ-jSthemJbojSc-t OjoSPubJcvduSPo otuch-SPhbuFSuGhS
1obPch-PShnSgOgg oSPhbuFSc-Pobuch-SPhbuFSsOctaSPhbuFSdoJmSPhbuFSJ-jSeobvoSPhburSidoSPhbuc-vSJ vhw
bcudePSJboSthemJbojSOPc-vSonnctco-tCSJ-J CPcPrSidoSjcPtOPPch-ShnSJ vhbcudeSJ-J CPcPSth-uc-OoPSc-S
udoSth-uoquShnSPoJbtdc-vrS¤bo1chOP CSmboPo-uojSPoJbtdc-vSJ vhbcudePSJboSbo1coGojSJ-jS-oGSh-oPS
JboSjoPtbcgojr
Organization
Chapter Goals 5ouPShnSa-hG ojvoSJ-jSPac  SvhJ PSJboSmboPo-uojSJuSudoSgovc--c-vShnSoJtdStdJmuobS
uhSdo mSudoSPuOjo-uPSJPPoPPSGdJuSudoCSdJ1oS oJb-ojr
Sample Programs ŸOeobhOPSPJem oSmbhvbJePSJ-jSmbhvbJeSPoveo-uPSc  OPubJuoSudoSJgPubJtuS
th-tomuPSudbhOvdhOuSudoSuoqur
Feature Sections idbhOvdhOuSudoSuoquSudoPoSPdhbuSPotuch-PSdcvd cvduSuhmctPSudJuSJboS-huSjcbotu CS
mJbuShnSudoSn hGShnSeJuobcJ SgOuS-o1obudo oPPSJboSbo JuojSJ-jScemhbuJ-ur
Boxed Notes idoPoSPeJ  SghqoPShnSc-nhbeJuch-SPtJuuobojSudbhOvdhOuSudoSuoquSdcvd cvduFSPOmm ow
eo-uFSJ-jSboc-nhbtoSudoSuoquSeJuobcJ FSmobdJmPSnbheSJSP cvdu CSjcnnobo-uSmhc-uShnS1coGr
Chapter Summaries EJtdStdJmuobSth-t OjoPSGcudSJSPOeeJbCSPotuch-SudJuSbo1coGPSudoSehPuScew
mhbuJ-uSuhmctPShnSudoStdJmuobSJ-jSucoPSuhvoudobSbo JuojSuhmctPrS5heoStdJmuobSPOeeJbcoPSc-t OjoSJS
Rl6SjcJvbJeShnSudoSeJNhbSc-uobnJtoPSJ-jSt JPPoPSjo1o hmojSGcudc-SudoStdJmuobr
Appendices idoSJmmo-jctoPSPOeeJbc2oSudoSzJ1JSboPob1ojSGhbjSPouFShmobJuhbSmbotojo-toFSmbcecuc1oS
jJuJSuCmoPFSudoSD59BBSPOgPouShnSR-cthjoFSJ-jSmbh1cjoSJSv hPPJbCShnScemhbuJ-uSuobePSOPojSc-SudoSuoqur
WebsiteS duumykkvhrNg oJb-c-vrthekhhjP:o
idcPSGogPcuoSmbh1cjoPSJttoPPSuhSudoSuoqupPSPhObtoSthjoSnc oPSnhbSoJtdStdJmuobrSDjjcuch-J  CFSbovcPw
uobojSc-PubOtuhbPSJboSJg oSuhSJttoPPSPo otuojSJ-PGobPSuhSudoSuoqupPSoqobtcPoPFSJSuoPuScuoeSnc oFSJ-jS
mboPo-uJuch-SP cjoPrS¤ oJPoSth-uJtuSudoSJOudhbPScnSChOSdJ1oSeJuobcJ Sbo JuojSuhSudoSuoquSudJuSChOS
GhO jS caoSuhSPdJboSGcudShudobPr

x Preface
Acknowledgments
ToSGhO jS caoSuhSudJ-aSudoSnh  hGc-vSmohm oSGdhSuhhaSudoSuceoSuhSbo1coGSudcPSuoquySlJbaS
6 oGo  C-SJuSudoSR-c1obPcuCShnS9o-ubJ S3 hbcjJFS9do-v coSWOSJuS9Jbbh  S9h  ovoFS¥J SiJ--o-S
JuSudoSR-c1obPcuCShnS¤o--PC 1J-cJFS9dbcPSMh1h cPSJuSudoSR-c1obPcuCShnSlc--oPhuJFSlcaoS9hoSJuS
¤ J-hS5o-chbSWcvdS5tdhh FSlcao S¤ouuCSJuSR-c1obPcuCShnSD JgJeJSc-SWO-uP1c  oFSUo-oS5dommJbjS
JuSUohbvcJS¤obceouobS9h  ovoFSŸh-cS§hdh-JaSJuSudoSR-c1obPcuCShnS5hOudS9Jbh c-J¨6J-tJPuobFS
zhPoS9hbjh1JSJuSudoSR-c1obPcuCShnS6hOcPcJ-J¨lh-bhoFSzOjCSUObaJSJuSudoSloubhmh cuJ-S5uJuoS
9h  ovoShnSMo-1obFSlcadJc S§bcaeJ-SJuS5J oeS5uJuoSR-c1obPcuCFSDecuJ1JS©JbeJaobSJuSR-c1obPcuCS
hnSTcPth-Pc-¨5uhOuFSUOcno-vS5dJhSJuSio--oPPooS5uJuoSR-c1obPcuCFSRbPaJS91oaSJuS6hOcPcJ-JS5uJuoS
R-c1obPcuCSJuS5dbo1omhbuFS¤dc cmS9rSMhOvduCSzbrSJuSŸhbudob-S¥cbvc-cJS9heeO-cuCS9h  ovoFSzonnS
©cegJ  SJuS5hOudGoPuS§JmucPuSR-c1obPcuCFSzoboeCSirS6J-eJ-SJuSŸh1JS5hOudoJPuob-SR-c1obPcuCFS
.JhS6cSJuSR-c1obPcuCShnS5hOudS9Jbh c-JSDcao-FS6JbbCSidheJPSJuSR-c1obPcuCShnSih ojhFSJ-jS©Jbo-S
ThbaPSJuSToPunco jS5uJuoSR-c1obPcuCrSDSPmotcJ SudJ-aPSuhS9dbcPuc-oS5dJ--h-SJuS9o-uboS9h  ovoFSuhS
¤dc S6JlJPubJSJuS3Jcbnco jSR-c1obPcuCFSuhSD  J-SUhuu cogShnSŸoGSAhbaSR-c1obPcuCFSJ-jSuhSzrSTc  cJeS
9OmmSJuSB-jcJ-JSToP oCJ-SR-c1obPcuCSnhbSPmotcnctStheeo-uPS oJjc-vSuhScembh1oeo-uPSc-SudoS
uoqurSDSmobPh-J SudJ-aPSuhS©bcPuo-SQgobeCobFSiJbJS5bcdJbJFS5oJ-STc Ph-FS9dbcPuhmdobS6o2-CFSJ-jS
ŸJvJS6JaPdecFSJ  ShnS¥c  J-h1JSR-c1obPcuCFSm OPS©JudCFSiheFSJ-jSzO coSzhCtoSnhbSJ  ShnSudocbSdo mFS
POmmhbuFSJ-jSmbhhnboJjc-vSoqmobucPor
DS1cbuOJ SghOsOouShnSbhPoPSuhSudoSojcuhbcJ SJ-jSmbhjOtuch-SuoJePSGdhSth-ubcgOuojSPhSeOtdFS
oPmotcJ  CS6JObJS¤Jv OctJFSiJC hbS3obbJtJ-oFSDeCS.hPoFSJ-jS¤J J-cJmmJ-SloCCJmmJ-r
ND
DJ
CW

© Ake13bk/Shutterstock
1u d nnObjucojhbO- ru S
1.1  Classes, Objects, and Applications  2
ŒeSooro1 ª
idoSR-cncojSloudhjS «
QgNotuPS ¢
Dmm ctJuch-PS 0f
1.2  Organizing Classes  12
B-dobcuJ-toS 0ª
¤Sf2Skro1 Ž›
1.3  Exceptional Situations  22
WJ-j c-vSEqtomuch-J S5cuOJuch-PS ªª
Eqtomuch-PSJ-jS9 JPPoPySD-SEqJem oS ª,
1.4  Data Structures  27
Bem oeo-uJuch-wMomo-jo-uS5ubOtuOboPS ª¢
Bem oeo-uJuch-wB-jomo-jo-uS5ubOtuOboPS ªH
TdJuSBPSJSMJuJS5ubOtuObo¬S ,0
1.5  Basic Structuring Mechanisms  32
yrcanu1 ’ª
‘rtrnrzfro1 ’•
LnnSuo1 ’¢
1.6  Comparing Algorithms: Order of Growth Analysis  43
loJPObc-vSJ-SD vhbcudepPSiceoSEnnctco-tCS ::
9hem oqcuCS9JPoPS :¡
5c2oShnSB-mOuS :£
9hemJbc-vSD vhbcudePS :«
QbjobShnSUbhGudS :H
Contents

xii Contents
5o otuch-S5hbuS ¡f
9heeh-SQbjobPShnSUbhGudS ¡,
Summary  54
Exercises  55
2t p-ltafomgt,qpt jx
2.1  Abstraction  68
B-nhbeJuch-SWcjc-vS £¢
MJuJSDgPubJtuch-S £H
MJuJS6o1o PS «f
¤both-jcuch-PSJ-jS¤hPuth-jcuch-PS «0
zJ1JSB-uobnJtoPS ǻ
B-uobnJtow§JPojS¤h CehbmdcPeS «£
2.2  The Stack  78
QmobJuch-PSh-S5uJtaPS «H
RPc-vS5uJtaPS «H
2.3  Collection Elements  81
Uo-obJ  CSRPJg oS9h  otuch-PS ¢0
2.4  The Stack Interface  84
Eqtomuch-J S5cuOJuch-PS ¢¡
idoSB-uobnJtoS ¢¢
EqJem oSRPoS ¢H
2.5  Array-Based Stack Implementations  90
idoSDbbJC§hO-joj5uJtaS9 JPPS H0
Monc-cuch-PShnS5uJtaSQmobJuch-PS H,
idoSDbbJC6cPu5uJtaS9 JPPS HH
2.6  Application: Balanced Expressions  101
idoS§J J-tojS9 JPPS 0fª
idoSDmm ctJuch-S 0f«
idoS5hnuGJboSDbtdcuotuOboS 000
2.7  Introduction to Linked Lists  111
DbbJCPS¥obPOPS6c-aojS6cPuPS 000
idoS66ŸhjoS9 JPPS 00,
QmobJuch-PSh-S6c-aojS6cPuPS 00¡
2.8  A Link-Based Stack  121
idoS6c-aoj5uJtaS9 JPPS 0ªª
idoSpushSQmobJuch-S 0ª:
idoSpopSQmobJuch-S 0ª«
idoSQudobS5uJtaSQmobJuch-PS 0ªH
9hemJbc-vS5uJtaSBem oeo-uJuch-PS 0,0
2.9  Application: Postfix Expression Evaluator  132
McPtOPPch-S 0,ª
E1J OJuc-vS¤hPuncqSEqmboPPch-PS 0,,

Contents xiii
¤hPuncqSEqmboPPch-SE1J OJuch-SD vhbcudeS 0,:
EbbhbS¤bhtoPPc-vS 0,£
idoS¤hPu3cqE1J OJuhbS9 JPPS 0,«
idoS¤3cq96BS9 JPPS 0,H
2.10  Stack Variations  142
.o1cPcuc-vSQObS5uJtaSDMiS 0:ª
idoSzJ1JS5uJtaS9 JPPSJ-jSudoS9h  otuch-PS3bJeoGhbaS 0:,
Summary  145
Exercises  147
3u p eCogOPbu SNS
3.1  Recursive Definitions, Algorithms, and Programs  162
.otObPc1oSMonc-cuch-PS 0£ª
.otObPc1oSD vhbcudePS 0£,
.otObPc1oS¤bhvbJePS 0££
BuobJuc1oS5h Ouch-SnhbS3JtuhbcJ S 0£«
3.2  The Three Questions  167
¥obcnCc-vS.otObPc1oSD vhbcudePS 0£¢
Mouobec-c-vSB-mOuS9h-PubJc-uPS 0£H
Tbcuc-vS.otObPc1oSloudhjPS 0£H
MogOvvc-vS.otObPc1oSloudhjPS 0«f
3.3  Recursive Processing of Arrays  170
§c-JbCS5oJbtdS 0«f
3.4  Recursive Processing of Linked Lists  174
.otObPc1oSŸJuOboShnS6c-aojS6cPuPS 0«¡
ibJ1obPc-vSJS6c-aojS6cPuS 0«¡
ibJ-Pnhbec-vSJS6c-aojS6cPuS 0«¢
3.5  Towers  182
idoSD vhbcudeS 0¢ª
idoSloudhjS 0¢:
idoS¤bhvbJeS 0¢£
3.6  Fractals  186
DSiw5sOJboS3bJtuJ S 0¢«
¥JbcJuch-PS 0Hf
3.7  Removing Recursion  191
WhGS.otObPch-SThbaPS 0H0
iJc S9J  SE cec-Juch-S 0H¡
McbotuSRPoShnSJS5uJtaS 0H£
3.8  When to Use a Recursive Solution  197
.otObPch-SQ1obdoJjS 0H¢
B-onnctco-uSD vhbcudePS 0H¢
9 JbcuCS ªff

xiv Contents
Summary  202
Exercises  202
4u mw uGC C uFsmu aSq
4.1  The Queue  218
QmobJuch-PSh-S¦OoOoPS ª0H
RPc-vS¦OoOoPS ª0H
4.2  The Queue Interface  220
EqJem oSRPoS ªªª
4.3  Array-Based Queue Implementations  223
idoSDbbJC§hO-joj¦OoOoS9 JPPS ªª,
idoSDbbJCR-ghO-joj¦OoOoS9 JPPS ª,f
4.4  An Interactive Test Driver  234
idoSUo-obJ SDmmbhJtdS ª,:
DSioPuSMbc1obSnhbSudoSDbbJC§hO-joj¦OoOoS9 JPPS ª,¡
RPc-vSudoSioPuSMbc1obS ª,¡
4.5  Link-Based Queue Implementations  237
idoSE-sOoOoSQmobJuch-S ª,¢
idoSMosOoOoSQmobJuch-S ª,H
DS9cbtO JbS6c-aojS¦OoOoSMoPcv-S ª:0
9hemJbc-vS¦OoOoSBem oeo-uJuch-PS ª:ª
4.6  Application: Palindromes  244
idoS¤J c-jbheoS9 JPPS ª::
idoSDmm ctJuch-PS ª:£
4.7  Queue Variations  248
Eqtomuch-J S5cuOJuch-PS ª:¢
idoSU JPP¦OoOoS ª:¢
idoSMhOg owE-jojS¦OoOoS ª¡0
MhOg CS6c-aojS6cPuPS ª¡ª
idoSzJ1JS6cgbJbCS9h  otuch-S3bJeoGhbaS¦OoOokMosOoS ª¡¡
4.8  Application: Average Waiting Time  257
¤bhg oeSMcPtOPPch-SJ-jSEqJem oS ª¡¢
idoS9OPuheobS9 JPPS ª¡H
idoS5ceO Juch-S ª£ª
ioPuc-vS9h-PcjobJuch-PS ª£¢
4.9  Concurrency, Interference, and Synchronization  268
idoS9hO-uobS9 JPPS ª«f
zJ1JSidboJjPS ª«0
B-uobnobo-toS ª«:
5C-tdbh-c2Juch-S ª«¡
DS5C-tdbh-c2ojS¦OoOoS ª««
9h-tObbo-tCSJ-jSudoSzJ1JS6cgbJbCS9h  otuch-S9 JPPoPS ª¢ª

Contents xv
Summary  283
Exercises  284
5u mw uiP22 enOPbuFsmu akq
5.1  The Collection Interface  298
DPPOemuch-PSnhbSQObS9h  otuch-PS ªHH
idoSB-uobnJtoS ªHH
5.2  Array-Based Collection Implementation  301
5.3  Application: Vocabulary Density  305
5.4  Comparing Objects Revisited  308
idoSosOJ PSloudhjS ,f¢
idoS9hemJbJg oSB-uobnJtoS ,0:
5.5  Sorted Array-Based Collection Implementation  315
9hemJbJg oSE oeo-uPS ,0£
idoSBem oeo-uJuch-S ,0«
Bem oeo-uc-vSDMiPSIgCS9hmCVShbSIgCS.onobo-toVS ,0H
5Jem oSDmm ctJuch-S ,ª,
5.6  Link-Based Collection Implementation  325
idoSB-uob-J S.omboPo-uJuch-S ,ª¡
idoSQmobJuch-PS ,ª£
9hemJbc-vS9h  otuch-SBem oeo-uJuch-PS ,ªH
5.7  Collection Variations  330
idoSzJ1JS9h  otuch-PS3bJeoGhbaS ,,f
idoS§JvSDMiS ,,0
idoS5ouSDMiS ,,,
Summary  336
Exercises  337
6u mw uDOgnuFsmu A1z
6.1  The List Interface  346
BuobJuch-S ,:£
DPPOemuch-PSnhbSQObS6cPuPS ,:¢
idoSB-uobnJtoS ,:¢
6.2 DOgnu3R42 R bnhnOPbgu AzQ
DbbJCw§JPojSBem oeo-uJuch-S ,¡f
6c-aw§JPojSBem oeo-uJuch-S ,¡¡
6.3 F442OehnOPbg5uihorus evuhbrudhR gu ANS
idoS9JbjS9 JPPS ,£0
idoS9JbjMotaS9 JPPS ,£,
Dmm ctJuch-ySDbbJ-vc-vSJS9JbjSWJ-jS ,££
Dmm ctJuch-ySWcvdobShbS6hGob¬S ,£H
Dmm ctJuch-ySWhGS.JboSBPSJS¤Jcb¬S ,«f

xvi Contents
6.4 JPon ruFoohl6Lhg ruDOgnu3R42 R bnhnOPbu AqA
idoSB-Pobuch-S5hbuS ,«:
R-POmmhbuojSQmobJuch-PS ,«¡
9hemJbJuhbSB-uobnJtoS ,«£
9h-PubOtuhbPS ,««
D-SEqJem oS ,«¢
6.5 DOgnu7hoOhnOPbgu ABQ
zJ1JS6cgbJbCS6cPuPS ,¢f
6c-aojS6cPuS¥JbcJuch-PS ,¢0
DS6c-aojS6cPuSJPSJ-SDbbJCShnSŸhjoPS ,¢0
6.6 F442OehnOPb5uDhoj u3bn j ogu ABN
6JbvoSB-uovobPS ,¢£
idoSB-uob-J S.omboPo-uJuch-S ,¢«
idoS6JbvoB-u6cPuSt JPPS ,¢¢
idoS6JbvoB-uS9 JPPS ,H,
Djjcuch-SJ-jS5OgubJtuch-S ,H¡
idoS6JbvoB-u96BS¤bhvbJeS :f:
Summary  408
Exercises  410
7u mw uLObholuJ hoewumo  uFsmu 1aS
7.1  Trees  423
ibooSibJ1obPJ PS :ª£
7.2  Binary Search Trees  429
§c-JbCSibooPS :ªH
§c-JbCS5oJbtdSibooPS :,0
§c-JbCSibooSibJ1obPJ PS :,,
7.3  The Binary Search Tree Interface  435
idoSB-uobnJtoS :,£
7.4  The Implementation Level: Basics  439
7.5  Iterative Versus Recursive Method Implementations  443
.otObPc1oSDmmbhJtdSuhSudoSPc2oSloudhjS :::
BuobJuc1oSDmmbhJtdSuhSudoSPc2oSloudhjS ::£
.otObPch-ShbSBuobJuch-¬S ::¢
7.6  The Implementation Level: Remaining Observers  448
idoScontainsSJ-jSgetSQmobJuch-PS ::H
idoSibJ1obPJ PS :¡ª
7.7  The Implementation Level: Transformers  455
idoSJjjSQmobJuch-S :¡¡
idoSboeh1oSQmobJuch-S :£f
7.8  Binary Search Tree Performance  466
ioquSD-J CPcPSEqmobceo-uS.o1cPcuojS :££
B-Pobuch-SQbjobSJ-jSibooS5dJmoS :£¢

Contentsxvii
§J J-tc-vSJS§c-JbCS5oJbtdSibooS :£H
7.9  Application: Word Frequency Counter  471
idoSThbj3bosS9 JPPS :«ª
idoSDmm ctJuch-S :«,
7.10  Tree Variations  479
Dmm ctJuch-w5motcnctS¥JbcJuch-PS :«H
§J J-tojS5oJbtdSibooPS :¢ª
Summary  485
Exercises  487
8t p-lt:o;t,qpt v//
8.1  The Map Interface  501
8.2  Map Implementations  506
R-PhbuojSDbbJCS ¡f£
5hbuojSDbbJCS ¡f«
R-PhbuojS6c-aojS6cPuS ¡f«
5hbuojS6c-aojS6cPuS ¡f¢
§c-JbCS5oJbtdSibooS ¡f¢
D-SDbbJC6cPuw§JPojSBem oeo-uJuch-S ¡f¢
8.3  Application: String-to-String Map  512
8.4  Hashing  516
9h  cPch-PS ¡0¢
8.5  Hash Functions  524
DbbJCS5c2oS ¡ª:
idoSWJPdS3O-tuch-S ¡ª¡
zJ1JpPS5OmmhbuSnhbSWJPdc-vS ¡ªH
9hem oqcuCS ¡,f
8.6  A Hash-Based Map  530
idoSBem oeo-uJuch-S ¡,0
RPc-vSudoSWlJmSt JPPS ¡,¢
8.7  Map Variations  539
DSWCgbcjS5ubOtuOboS ¡:f
zJ1JS5OmmhbuSnhbSlJmPS ¡:ª
Summary  542
Exercises  543
9u mw uToOPoOnluGC C uFsmu zzS
9.1  The Priority Queue Interface  552
RPc-vS¤bchbcuCS¦OoOoPS ¡¡ª
idoSB-uobnJtoS ¡¡,
9.2  Priority Queue Implementations  554
R-PhbuojSDbbJCS ¡¡:

xviiiContents
5hbuojSDbbJCS ¡¡:
5hbuojS6c-aojS6cPuS ¡¡£
§c-JbCS5oJbtdSibooS ¡¡£
9.3  The Heap  556
9.4  The Heap Implementation  562
DSŸh- c-aojS.omboPo-uJuch-ShnS§c-JbCSibooPS ¡£ª
Bem oeo-uc-vSJSWoJmS ¡£:
idoSo-sOoOoSloudhjS ¡£«
idoSjosOoOoSloudhjS ¡£H
DS5Jem oSRPoS ¡«:
WoJmPS¥obPOPSQudobS.omboPo-uJuch-PShnS¤bchbcuCS¦OoOoPS ¡«¡
Summary  576
Exercises  576
10t p-ltheo;-t,qpt JIY
10.1  Introduction to Graphs  584
10.2  The Graph Interface  588
10.3  Implementations of Graphs  591
DbbJCw§JPojSBem oeo-uJuch-S ¡H0
6c-aojSBem oeo-uJuch-S ¡H£
10.4  Application: Graph Traversals  597
Momudw3cbPuS5oJbtdc-vS ¡H¢
§boJjudw3cbPuS5oJbtdc-vS £fª
10.5  Application: The Single-Source  Shortest-Paths Problem  605
Summary  611
Exercises  612
11u JPonObjuhbruJ hoewObjuF2jPoOnwRgu NaS
11.1  Sorting  622
DSioPuSWJb-oPPS £ª,
11.2  Simple Sorts  625
5o otuch-S5hbuS £ª¡
§Ogg oS5hbuS £,0
B-Pobuch-S5hbuS £,¡
11.3  O(N log
2N) Sorts  638
lobvoS5hbuS £,H
¦OctaS5hbuS £:£
WoJmS5hbuS £¡ª
11.4  More Sorting Considerations  658
ioPuc-vS £¡¢
Ennctco-tCS £¡¢
QgNotuPSJ-jS.onobo-toPS ££f

Contents xix
9hemJbc-vSQgNotuPS ££0
5uJgc cuCS ££0
11.5  Searching  662
5osOo-ucJ S5oJbtdc-vS ££,
Wcvdw¤bhgJgc cuCSQbjobc-vS ££,
5hbuojS9h  otuch-PS ££:
WJPdc-vS ££¡
Summary  666
Exercises  667
Appendix A: Java Reserved Words  673
Appendix B: Operator Precedence  674
Appendix C: Primitive Data Types  675
Appendix D: ASCII Subset of Unicode  676
Glossary  677
Index  683

CHAPTER
CHAAPTERGeEtTPiHn
KnowledgeGoals
You should be able to
CHdescribe some benefits of object-oriented programming
CHdescribe the genesis of the Unified Method
CHexplain the relationships among classes, objects, and applications
CHexplain how method calls are bound to method implementations with respect to inheritance
CHdescribe, at an abstract level, the following structures: array, linked list, stack, queue, list, tree, map, and graph
CHidentify which structures are implementation dependent and which are implementation independent
CHdescribe the difference between direct addressing and indirect addressing
CHexplain the subtle ramifications of using references/pointers
CHexplain the use of O notation to describe the amount of work done by an algorithm
CHdescribe the sequential search, binary search, and selection sort algorithms
SkillGoals
You should be able to
CHinterpret a basic UML class diagram
CHdesign and implement a Java class
CHcreate a Java application that uses the Java class
CHuse packages to organize Java compilation units
CHcreate a Java exception class
CHthrow Java exceptions from within a class and catch them within an application that uses the class
CHpredict the output of short segments of Java code that exhibit aliasing
CHdeclare, initialize, and use one- and two-dimensional arrays in Java, including both arrays of a primitive type and arrays of objects
CHgiven an algorithm, identify an appropriate size representation and determine its order of growth
CHgiven a section of code determine its order of growth
1
© Ake13bk/Shutterstock

2 .ltsAHeR1OraazdKowlKsdzSrk
B
eforeembarkingonanynewproject,itisagoodideatopreparecarefully—to“get
inKrdzjehcAgudgk’zCgvznCkgS’rlkengk’rkgzCgeLrSk.ogw’rkgweghicgDgSrnetp.gCkphogitgk’egkilzSCg
PAEdvi.EzverdHTEOi,,ErTHreTHEs.EAPTEdvHERedHTie,EPnEledeE.dTszdsTH.EenlEe,gPTidvR.1Es.ingE
dvHEPGaHzdhPTiHndHlEerrTPezv1EzPuHTHlEinEdvHETHReinlHTEPAEdvHEGPPtp
1,1Rspkjjej—mb“ze.fj—mkrnm”uupo.kfoyrj
mitkwrnegheCzKdgzCgrdgzdkeneCkzdK1gS’r..edKzdK1grdhgnewrnhzdKgkrCacgDCgrgOeKzddzdKgCkphedkg
irugieDGhtbucgntlgtxu,iGu-bihtuDbi bpecuhyphuci(St.ubt(phnSt(,ucneD(tuDbis(tecmuQGgyu
iru,iGbutrribhu-tlhunlhiu(tpblnl uhytuc,lhpkuirupuDbi bpeenl u(pl Gp tucGgyupcuApSpBuhytu
.rdKprKeMCgneCenNehgwinhC1gzkCghrkrgkoleC1gzkCgSidCknpSkCgtingCe.eSkzidgrdhg.iilzdK1grdhgzkCg
inrsdfPsdrsdERHzveni.R.p
fcu,iGbuDbi bpecupl.uhytuDbis(tecuhyt,uci(StustgietueibtugieD(tkunhuncuneDibhplhu
hiuri((i-upucirh-pbtu.tcn lupDDbipgyuhyphuei.G(pbndtcu,iGbuci(Ghnilc)sbtpocuhyteunlhiu
giytbtlhueplp tps(tucGsGlnhcmuRirh-pbtu.tcn lu-pcuibn nlp((,u.bnStlus,upluteDypcncuilu
pghnilcmuMbi bpecu-tbtuei.G(pbndt.us,usbtponl uhyteunlhiucGsDbi bpecuibuDbigt.GbtcW
AsnzdiPn.pE(E.sGrTPgTeRErHTAPTR.E.PRHEze,zs,ediPn.EenlETHdsTn.EinAPTRediPnEdPEdvHEze,,h
nl uDbi bpexusGhunhu.itculihuHbtetestbzupl,hynl muwluhytu(phtuCPLˆcxubtctpbgytbcupb Gt.u
hyphu hyncu pDDbipgyu -pcu hiiu (nenhnl u pl.u .n.u lihu p((i-u Gcu hiu cGggtccrG((,u btDbtctlhu hytu
gilchbGghcultt.t.uhiusGn(.ugieD(tkuc,chtecm
‰-iuŠib-t nplcxu‹bnchtluŠ, ppb.upl.uŒ(tNAiypluŽpy(xugbtpht.uRneG(puL‘unluCPL‘mu
JdEOe.EdvHE-iT.dE,engsegHEdPE.srrPTdEPGaHzdhPTiHndHlErTPgTeRRingpE3GaHzdhPTiHndHlE,enh
gsegH.ErTPRPdHEdvHEPGaHzdEe.EdvHErTiRHERPls,eTicediPnERHzveni.RpE3GaHzd.ETHrTH.HndE
GPdvEinAPTRediPnEenlEGHveuiPTEenlEzenEjTHRHRGHToEindHTne,EinAPTRediPnEATPREPnHEs.HEdPE
hytultkhmu‰yncugbGgnp(u.nrrtbtlgtup((i-cuhyteuhiustuGct.unluepl,uStbcphn(tu-p,cmuwlu’ˆˆCxu
Š, ppb.upl.uŽpy(ubtgtnSt.uhytu‰Gbnl uf-pb.xuciethnetcubtrtbbt.uhiupcuhytuHŠist(uMbndtu
PAEDPRrsding1oEAPTEdvHiTEOPTtp
Thecapabilityofobjectstorepresentbothinformation(theobjectshaveattributes5g
rdhgOe’rNzing?k’egiOseSkCg’rNegresponsibilities”Ee,,PO.EdvHREdPEGHEs.HlEdPETHrTH.HndEjTHe,h
OPT,loEHndidiH.Ee.EueTiHlEe.EGentEezzPsnd.1EgHnPRH.1EenlEvPGGid.pENvHE.H,AhzPndeinHlEneh
tureofobjectsmakesthemeasytoimplement,modify,andtestforcorrectness.
3GaHzdEPTiHndediPnEi.EzHndHTHlEPnEz,e..H.EenlEPGaHzd.pE3GaHzd.EeTHEdvHEGe.izETsnhdiRHE
edkzkzeCgpCehgOogrll.zSrkzidCcgDdgiOseSkgzCgrdgzdCkrdkzrkzidgitgrgS.rCCRgr.kendrkzNe.o1grgS.rCCg
hevzdeCgk’egCknpSkpnegitgzkCgiOseSkCcgudgk’zCgCeSkzidgwegneNzewgk’eCegiOseSkyinzedkehglniy
gTeRRingEzPn.dTszd.EdvedEOHEs.HEdPEPTgenicHEPsTErTPgTeR.p
Classes
DgS.rCCghevzdeCgk’egCknpSkpnegitgrdgiOseSkgingrgCekgitgiOseSkCcgDgS.rCCghevzdzkzidgzdS.pheCg
ueTieG,H.E“lede”EenlERHdvPl.E“ezdiPn.”EdvedElHdHTRinHEdvHEGHveuiPTEPAEenEPGaHzdpENvHEAP,h
.iwzdKgUrNrgSiheghevzdeCgrgDateEz,e..EdvedEzenEGHEs.HlEdPEzTHedHEenlERenirs,edHEDateg
PGaHzd.bAPTEHweRr,H1EOidvinEeE.zvPP,EzPsT.Hh.zvHls,ingEerr,izediPnpENvHEDategS.rCCgSrdg
OegpCehgkigSnerkegDateobjectsandtolearnabouttheyear,month,ordayofanyparticular

3,s,y Bdjuuaulyw—“azkulyjntyf..dizjki”nu
DateE PGaHzdp
1
ENvHE z,e..E e,.PE rTPuilH.E
methodsthatreturntheLilianDayNum-
GHTEPAEdvHEledHE“dvHEzPlHElHdei,.EveuHEGHHnE
PRiddHlb.HHEdvHEAHedsTHE.HzdiPnEPnEVi,ienE
Day Numbers for more information) and
THdsTnEeE.dTingETHrTH.HndediPnEPAEdvHEledHp
//----------------------------------------------------------------------
// Date.java               by Dale/Joyce/Weems                 Chapter 1
//
// Defines date objects with year, month, and day attributes.
//----------------------------------------------------------------------
package ch01.dates;
public class Date
{
    protected int year, month, day;
    public static final int MINYEAR = 1583;
// Constructor
    public Date(int newMonth, int newDay, int newYear)
    {
       month = newMonth; day = newDay; year = newYear;
    }
// Observers
    public int getYear() { return year; }
    public int getMonth() { return month; }
    public int getDay(){ return day; }
    public int lilian()
    {
// Returns the Lilian Day Number of this date.
// Algorithm goes here. Code is included with the program files.
// See Lilian Day Numbers feature section for details.
    }
    @Override
2
    public String toString()
1
 The Java library includes a Date class, java.util.Date. However, the familiar properties of dates make them a natural 
example to use in explaining object-oriented concepts. Here we ignore the existence of the library class, as if we must design 
our own Date class.
2
 The purpose of @Override is discussed in Section 1.2 “Organizing Classes.”
Authors’Convention
us’svlrprl’rkoLAlkpoDLyrdoNprkospopNjym.oNprlvkrTdrko
itankiMapulyzdjuuyjntyMdaynjJaulyjntyu”y”nlyj..ajpyiny
this fontyk-p”vg-”vkyk-ayankipayka:ks

4 .ltsAHeR1OraazdKowlKsdzSrk
// Returns this date as a String.
    {
       return(month + "/" + day + "/" + year);
    }
}
x’egDateEz,e..ElHRPn.dTedH.EdOPEtinl.EPAEueTieG,H.xEin.denzHEueTieG,H.EenlEz,e..EueTih
rO.eCcgx’egzdCkrdSegNrnzrO.eCgitgk’zCgS.rCCgrnegyear1gmonth1grdhgdaygheS.rnehgrC
protected int year, month, day;
x’ezngNr.peCgNrnogtingerS’gbzdCkrdSeAgitgrdgiOseSkgitgk’egS.rCCcgudCkrdSegNrnzrO.eCglniNzheg
k’egzdkendr.gnelneCedkrkzidgitgrdgiOseSkMCgrkknzOpkeCc
x’egNrnzrO.egMINYEARgzCgheS.rnehgrC
public static final int MINYEAR  = 1583;
MINYEARgzCghevzdehgrCgOezdKgstatic1grdhgk’pCgzkgzCgrgS.rCCgNrnzrO.ecgukgzCgrCCiSzrkehghzy
neSk.ogwzk’gk’egDategS.rCC1gzdCkerhgitgwzk’giOseSkCgitgk’egS.rCCcgDgCzdK.egSilogitgrgS.rCCgNrnzy
eG,HEi.EReindeinHlEAPTEe,,EPGaHzd.EPAEdvHEz,e..p
6HRHRGHTEdvedEdvHEfinalERPli-iHTE.dedH.EdvedEeEueTieG,HEi.EinEid.E-ine,EAPTREenlEzenh
nPdEGHERPli-iHl5Edvs.EMINYEARgzCgrgSidCkrdkcgGogSidNedkzid1gwegpCegid.ogSrlzkr.g.ekkenCg
OvHnEneRingEzPn.dend.pEJdEi.E.denleTlErTPzHlsTHEdPElHz,eTHEzPn.dend.Ee.Ez,e..EueTieG,H.pE
GeSrpCegk’egNr.pegitgk’egNrnzrO.egSrddikgS’rdKe1gk’enegzCgdigdeehgkigtinSegeNenogiOseSkgitgrg
S.rCCgkigSrnnogrnipdhgzkCgiwdgNenCzidgitgk’egNr.pecgudgrhhzkzidgkig’i.hzdKgC’rnehgSidCkrdkC1g
z,e..EueTieG,H.EzenEGHEs.HlEdPEReindeinEinAPTRediPnEdvedEi.EzPRRPnEdPEenEHndiTHEz,e..pE:PTE
HweRr,H1EeEBankAccountrTye..rue r)eIorerTye..rIetaebyorl)elr)syh.rl)orfgubotrsnrTgttoflr
accounts.
udgk’egDateEz,e..EHweRr,H1EdvHEMINYEARgSidy
CkrdkgnelneCedkCgk’egvznCkgtp..goerngk’rkgk’egwzhe.og
pCehgšneKinzrdgSr.edhrngwrCgzdgetteSkcgx’egzherg
vHTHE i.E dvedE rTPgTeRRHT.E .vPs,lE nPdE s.HE dvHE
S.rCCg kig nelneCedkg hrkeCg k’rkg lnehrkeg k’rkg oerncg
qeg.iiagrkgwroCgkigedtinSegk’zCgnp.egzdgmeSkzidgJc(g
b)LSelkzidr.gmzkprkzidC1Agw’enegweghzCSpCCg’rdy
h.zdKgeLSelkzidr.gCzkprkzidCc
NvHERHdvPl.EPAEdvHEz,e..EeTHEDate1gggetYear1ggetMonth1ggetDay,glilian,grdhg
toStringcg3ikegk’rkgk’egDateERHdvPlEve.EdvHE.eRHEneRHEe.EdvHEz,e..pE6Hze,,EdvedEdvi.E
uoef.ralra.rer.ioTaeyrl iorsnruol)sh1rTeyyohrerTye..rrconstructorcgWidCknpSkinCgrnegpCehgkig
zTHedHEnHOEin.denzH.EPAEeEz,e..bdvedEi.1EdPEin.dendiedHEPGaHzd.EPAEeEz,e..pENvHEPdvHTERHdvh
ihCgrnegS.rCCzvzehgrCgobserverruol)sh.1rboTeg.orl)o r3sb.otIoLrefhrtolgtfrafnstuelasfr
Ge.HlEPnEdvHEin.denzHEueTieG,HEue,sH.pE3dvHTEneRH.EAPTEPG.HTuHTERHdvPl.EeTHEjezzH..PToE
uol)sh.refhr3mollot.1Lre.rafreTTo..afmrstrmollafmrafnstuelasfMr-ol)sh.rl)elr.auiy rtolgtfr
k’egNr.pegitgrdgzdCkrdSegNrnzrO.e1gCpS’grCggetYear()gzdgipngDaterTye..1retorIot rTsuusfr
efhreyde .rnsyysdrl)or.euorTshoriellotfrTsf.a.lafmrsnrer.afmyorreturnE.dedHRHndpE:PTEdvi.E
THe.PnEOHEOi,,EAPTRedE.szvERHdvPl.Ee.EeE.ing,HE,inHEPAEzPlHpEJnEellidiPnEdPEzPn.dTszdPT.E
Authors’Convention
MroyzKyhzKyaozUcAlasdaoarlUpoaysaoUzKyao,roNd2sUzhzsloaAo
ayropaNkrdaozdogreen.oayroTlpaoazUroayrIoslro2rsaNlrk.oaAo
zdkzjsaroaysaoayrzlokrTdzazAdojsdo,ro2ANdkozdoayroKhAppslIo
zdotccrdkz€ogC

5,s,y Bdjuuaulyw—“azkulyjntyf..dizjki”nu
efhrsb.otIot.1rl)otora.refsl)otrmofoteyrTelomst rsnruol)sh1rTeyyohrertransformerMrV.r sgr
probablyrecall,transformerschangetheobjectinsomeway;forexample,amethodthat
T)efmo.rl)or oetrsnrerDateEPGaHzdEOPs,lEGHEz,e..i-iHlEe.EeEdTen.APTRHTp
Ÿsgr)eIorgfhsgblohy rfslaTohrl)org.orsnrl)oreTTo..rushaFaot.rprotectedEenlEEpublicE
OidvinEdvHEDateEz,e..pEVHdEs.ETHuiHOEdvHErsTrP.HEenlEs.HEPAEaccess modiierspENvi.Eli.h
Tg..asfre..guo.r sgrtoTeyyrl)orbe.aTrahoe.rbo)afhraf)otalefTorefhrieTvemo.Mr(f)otalefTor
.giistl.rl)oroJlof.asfrsnrsforTye..1rTeyyohrl)or.giotTye..1rb refsl)otrTye..1rTeyyohrl)or.gbp
Tye..Mrq)or.gbTye..r3af)otal.Lritsiotlao.rwhelerefhreTlasf.•rntsurl)or.giotTye..Mr›or.e rl)elr
dvHE.sGz,e..Ei.ElHTiuHlEATPREdvHE.srHTz,e..pEyeztegH.E,HdEs.EgTPsrETH,edHlEz,e..H.EdPgHdvHTE
aflsrer.afmyorgfalMr(f)otalefTorefhrieTvemo.retorbsl)rha.Tg..ohrustoroJlof.aIoy rafrl)orfoJlr
section.
meueEe,,PO.EeEOilHE.rHzdTsREPAEezzH..EzPndTP,1Ee.E.sRReTicHlEinETable 1.1pENvHEpublicE
ezzH..ERPli-iHTEs.HlEOidvEdvHERHdvPl.EPAEDateruevo.rl)our3igbyaTy LreIeayebyo–ref rTshor
thatcan“see”anobjectoftheclasscanuseitspublicmethods.Wesaythatthesemethods
etor3oJistlohLrntsurl)orTye..MrVhhalasfeyy 1ref rTye..rl)elra.rhotaIohrntsurl)orDateEz,e..Es.h
ingEinvHTidenzHEinvHTid.Eid.ErsG,izERHdvPl.EenlEueTieG,H.p
ysG,izEezzH..E.id.EedEPnHEHnlEPAEdvHEezzH..E.rHzdTsR1Ee,,POingEPrHnEezzH..pE(dEdvHEPdvHTE
ofhrsnrl)or.ioTltgura.ritaIeloreTTo..Mr›)ofr sgrhoTyetorerTye..5.rIetaebyo.refhruol)sh.re.r
private1rl)o rTefrborg.ohrsfy raf.ahorl)orTye..ral.oynrefhretorfslraf)otalohrb r.gbTye..o.Mr
Ÿsgr.)sgyhrtsglafoy rg.oritaIelorwstritsloTloh•reTTo..rdal)afr sgtrTye..o.rlsr)ahorl)oatr
heleMrŸsgrhsrfslrdeflrl)orhelerIeygo.rlsrborT)efmohrb rTshorl)elra.rsgl.ahorl)orTye..Mr™str
HweRr,H1EiAEdvHEmonthEin.denzHEueTieG,HEinEPsTEDateEz,e..EOe.ElHz,eTHlEdPEGHEpublic1E
l)ofrl)oreiiyaTelasfrTshorTsgyhrhatoTly r.olrl)orIeygorsnrerDateEPGaHzdW.EmonthEdPE.dTengHE
nsRGHT.E.szvEe.EC—4EPTE4‘p
(nEHwzHrdiPnEdPEdvi.EgsilH,inHEPAEvilingEledeEOidvinEeEz,e..Ei.E.vPOnEinEdvHEDateEHwh
eRr,HpEBPdizHEdvedEdvHEMINYEARrTsf.leflra.rigbyaTy reTTo..abyoMr(lrTefrboreTTo..ohrhatoTly r
b rl)oreiiyaTelasfrTshoMr™stroJeuiyo1refreiiyaTelasfrTsgyhrafTyghorl)or.lelouofl
if (myYear < Date.MINYEAR) ...
CHzes.HEMINYEARra.rerFafeyrTsf.lefl1ral.rIeygorTeffslrborT)efmohrb rl)oreiiyaTelasfMrq)g.1r
oIofrl)sgm)ralra.rigbyaTy reTTo..abyo1rfsrsl)otrTshorTefrT)efmoral.rIeygoMr(lra.rfslrfoTo..et r
Table 1.1  Java Access Control Modifiers
Access Is Allowed
Within
the Class
Within
the Package
Within
Subclasses

Everywhere
public X XXX
protected X X X
package X X
private X

6 .ltsAHeR1OraazdKowlKsdzSrk
kig’zhegzkcgx’egrll.zSrkzidgSihegrOiNegr.CigC’iwCg’iwgkigrSSeCCgrglpO.zSgS.rCCgNrnzrO.eg
ATPREPsd.ilHEdvHEz,e..pECHzes.HEMINYEARgzCgrgS.rCCgNrnzrO.e1gzkgzCgrSSeCCehgk’nipK’gk’eg
z,e..EneRH1EDate1gnrk’engk’rdgk’nipK’grdgiOseSkgitgk’egS.rCCc
InzNrkeg rSSeCCg rttinhCg k’eg CknidKeCkg lnikeSkzidcg DSSeCCg zCg r..iwehg id.og wzk’zdg k’eg
g(pccmu¡i-tStbxunru,iGuD(pluhiutkhtl.u,iGbug(pcctcuGcnl unlytbnhplgtxu,iGuep,u-plhuhiuGctu
lnikeSkehgrSSeCCgzdCkerhc
x’egprotectedE ezzH..E RPli-iHTE s.HlE inE
DateuDbiSn.tcuSncnsn(nh,ucnen(pbuhiuDbnSphtupggtccxu
il(,uc(n yh(,u(tccubn n.muwhuHDbihtghczunhcu.phpurbieu
ipkCzhegrSSeCC1gOpkgr..iwCgk’eghrkrgkigOegrSSeCCehg
ATPRE OidvinE id.E POnE reztegHEor rbieu pl,u g(pccu
lHTiuHlEATPREid.Ez,e..pENvHTHAPTH1EdvHERHdvPl.EOidvinEdvHEDategS.rCCgSrdgrSSeCCgyear, 
month, rdhgday, rdhgzt1grCgwegwz..gC’iwgzdgmeSkzidgJcQgbHnKrdzjzdKgW.rCCeC1Agk’egDategS.rCCg
i.EHwdHnlHl1EdvHERHdvPl.EinEdvHEHwdHnlHlEz,e..EzenEe,.PEezzH..EdvP.HEueTieG,H.p
‰ytubtepnlnl uh,Dtuirupggtccuncugp((t.uDpgop tupggtccmufuSpbnps(tuibuethyi.uirupug(pccu
lHAes,d.EdPEreztegHEezzH..EiAEnPnHEPAEdvHEPdvHTEdvTHHERPli-iHT.EeTHEs.HlpEyeztegHEezzH..E
etplcuhyphuhytuSpbnps(tuibuethyi.uncupggtccns(tuhiupl,uihytbug(pccunluhytucpetuDpgop tm
1582 1582OCTOBER
SUN
31
17
24
MON
1
18
25
TUE
2
19
26
WED
3
20
27
THU
4
21
28
FRI
15
22
29
SAT
16
23
30
c,libuec,bvtbri,b
MroNproclAarjarkosjjrppor€ardpz’rhIo2Alozdpasdjro
o’slzs,hrpoLzayzdoANlojhspprpozdoayzpoar€aCo
wPrPtTR(thRuJ)jHea
Various approaches to numbering days have been proposed. Most choose a particular day in history 
as day 1, and then number the actual sequence of days from that day forward with the numbers 2, 
3, and so on. The Lilian Day Number (LDN) system uses October 15, 1582, as day 1, or LDN 1.
Our current calendar is called the Gregorian calendar. It was established in 1582 by Pope Greg-
ory XIII. At that time 10 days were dropped from the month of October, to make up for small errors 
that had accumulated throughout the years. Thus, the day following October 4, 1582, in the Gre-
gorian calendar is October 15, 1582, also known as LDN 1 in the Lilian day numbering scheme. The 
scheme is named after Aloysius Lilius, an advisor to Pope Gregory and one of the principal instigators 
of the calendar reform.
Originally, Catholic European countries adopted the Gregorian calendar. Many Protestant na-
tions, such as England and its colonies, did not adopt the Gregorian calendar until 1752, at which 
1582 1582OCTOBER
SUN
31
17
24
MON
1
18
25
TUE
2
19
26
WED
3
20
27
THU
4
21
28
FRI
15
22
29
SAT
16
23
30
wPrPtTR(thRuJ)jHea
Various approaches to numbering days have been proposed. Most choose a particular day in history 
as day 1, and then number the actual sequence of days from that day forward with the numbers 2, 
3, and so on. The Lilian Day Number (LDN) system uses October 15, 1582, as day 1, or LDN 1.
Our current calendar is called the Gregorian calendar. It was established in 1582 by Pope Greg-
ory XIII. At that time 10 days were dropped from the month of October, to make up for small errors 
that had accumulated throughout the years. Thus, the day following October 4, 1582, in the Gre-
gorian calendar is October 15, 1582, also known as LDN 1 in the Lilian day numbering scheme. The 
scheme is named after Aloysius Lilius, an advisor to Pope Gregory and one of the principal instigators 
of the calendar reform.
Originally, Catholic European countries adopted the Gregorian calendar. Many Protestant na-
tions, such as England and its colonies, did not adopt the Gregorian calendar until 1752, at which 

71C1o Ghspprp.ow,brjap.osdkotcchzjsazAdp
MdemJro:enm’efdyn
NvHEPGaHzdhPTiHndHlEerrTPezvEdPErTPgTeRRingEi.EGe.HlEPnEiRr,HRHndingERPlH,.EPAETHe,h
zkocgGpkg’iwghigoipgKigrOipkgk’zC−gq’eneghigoipgCkrnk−g0iwghigoipglniSeeh−gx’egOeCkgl.rdg
i.EdPEAP,,POEenEPTgenicHlEerrTPezvEze,,HlEeEmethodology.
Inthelate1980s,manypeopleproposedobject-orientedmethodologies.Bythemid-
J--PC1gk’neeglniliCr.CgCkiihgipk€gk’egHOseSkgTihe.zdKgxeS’dz–pe1gk’egHOseSkinogIniSeCC1g
efhrl)orcssT)r-ol)shMrcoldoofr044¥refhr044z1rl)oritauet regl)st.rsnrl)o.oritsis.ey.r
mslr lsmol)otr efhr Tsf.syahelohr l)oatr ahoe.Mr q)or to.gylafmr uol)shsysm r de.r hgbbohr l)or
UniiedMethod.Itisnow,byfar,themostpopularorganizedapproachtocreatingobject-
staoflohr. .lou.M
q)or¦faFaohr-ol)shrnoelgto.rl)toorvo royouofl.k
1. JdEi.Es.Hhze.HElTiuHnpE(Es.Hhze.HEi.EeElH.zTirdiPnEPAEeE.H¤sHnzHEPAEezdiPn.ErHTAPTRHlE
b rerg.otrdal)afrl)or. .lourlsreTTsuiya.)r.suorle.vMrq)orlotur3g.otLr)otor.)sgyhrbor
aflotitolohrafrerbtsehr.of.orefhrTsgyhrtoito.oflrefsl)otr. .louM
2. JdEi.EeTzvidHzdsTHhzHndTizpENvHEOPTlEjeTzvidHzdsTHoETHAHT.EdPEdvHEPuHTe,,E.dTszdsTHEPAEdvHE
letmolr. .lou1rl)orde rafrd)aT)ral.rTsuisfofl.rafloteTlM
time they also “lost” 11 days. Today, most countries use the Gregorian calendar, at least for offcial 
international business. When comparing historical dates, one must be careful about which calendars 
are being used.
In our Date class implementation, MINYEAR is 1583, representing the frst full year during 
which  the  Gregorian  calendar  was  in  operation.  We  assume  that  programmers  will  not  use  the 
Date class to represent dates before that time, although this rule is not enforced by the class. This 
assumption simplifes calculation of day numbers, as we do not have to worry about the phantom 
10 days of October 1582.
To calculate LDNs, one must understand how the Gregorian calendar works. Years are usually 
365Hdays long. However, every year evenly divisible by 4 is a leap year, 366 days long. This aligns the 
calendar closer to astronomical reality. To fne-tune the adjustment, if a year is evenly divisible by 
100, it is not a leap year but, if it is also evenly divisible by 400, it is a leap year. Thus 2000 was a 
leap year, but 1900 was not.
Given a date, the lilian method of the Date class counts the number of days between that 
date and the hypothetical date 1/1/0—that is, January 1 of the year 0. This count is made under the 
assumption that the Gregorian reforms were in place during that entire time period. In other words, 
it uses the rules described in the previous paragraph. Let us call this number the Relative Day  Number 
(RDN). To transform a given RDN to its corresponding LDN, we just need to subtract the RDN of  
October 14, 1582, from it. For example, to calculate the LDN of July 4, 1776, the method frst cal-
culates its RDN (648,856) and then subtracts from it the RDN of October 14, 1582 (578,100), giving 
the result of 70,756.
Code for the lilian method is included with the program code fles. 
time they also “lost” 11 days. Today, most countries use the Gregorian calendar, at least for offcial 
international business. When comparing historical dates, one must be careful about which calendars 
are being used.
In our Date class implementation, MINYEAR is 1583, representing the frst full year during 
which  the  Gregorian  calendar  was  in  operation.  We  assume  that  programmers  will  not  use  the 
Date class to represent dates before that time, although this rule is not enforced by the class. This 
assumption simplifes calculation of day numbers, as we do not have to worry about the phantom 
10 days of October 1582.
To calculate LDNs, one must understand how the Gregorian calendar works. Years are usually 
365Hdays long. However, every year evenly divisible by 4 is a leap year, 366 days long. This aligns the 
calendar closer to astronomical reality. To fne-tune the adjustment, if a year is evenly divisible by 
100, it is not a leap year but, if it is also evenly divisible by 400, it is a leap year. Thus 2000 was a 
leap year, but 1900 was not.
Given a date, the lilian method of the Date class counts the number of days between that 
date and the hypothetical date 1/1/0—that is, January 1 of the year 0. This count is made under the 
assumption that the Gregorian reforms were in place during that entire time period. In other words, 
it uses the rules described in the previous paragraph. Let us call this number the Relative Day Number 
(RDN). To transform a given RDN to its corresponding LDN, we just need to subtract the RDN of 
October 14, 1582, from it. For example, to calculate the LDN of July 4, 1776, the method frst cal-
culates its RDN (648,856) and then subtracts from it the RDN of October 14, 1582 (578,100), giving 
the result of 70,756.
Code for the lilian method is included with the program code fles. 

8 .ltsAHeR1OraazdKowlKsdzSrk
3. JdEi.EidHTediuHEenlEinzTHRHnde,pENvHE¦ni-iHlE HdvPlEinuP,uH.EeE.HTiH.EPAElHuH,PrRHndE
SoS.eC1gwzk’gerS’gidegOpz.hzdKgplidgk’egtipdhrkzidgeCkrO.zC’ehgOogzkCglneheSeCCinCc
3nHEPAEdvHEReinEGHnH-id.EPAEdvHE¦ni-iHlE HdvPlEi.EiRrTPuHlEzPRRsnizediPnEeRPngEdvHE
rHPr,HE inuP,uHlE inE dvHE rTPaHzdpE NvHE ¦ni-iHlE  HdvPlE inz,slH.E eE .HdE PAE liegTeR.E APTE dvi.E
lpnliCe1gSr..ehgk’egzfpjpawy.ewatpfuy”ifumiuayIz.”h.
3
g
g¦ VEliegTeR.EveuHEGHzPRHEeE
horneTlsrafhg.lt r.lefhethrnstrushoyafmr.snldetoMrq)o retorg.ohrlsr.ioTan 1rIa.geyaUo1rTsfp
.ltgTl1refhrhsTguoflrl)orTsuisfofl.rsnrer.snldetor. .louMr›org.or¦-—rTye..rhaemteu.
dvTPsgvPsdEdvi.EdHwdEdPERPlH,EPsTEz,e..H.EenlEdvHiTEindHTTH,ediPn.vir.p
(EliegTeRETHrTH.HndingEdvHEDategS.rCCgzCgC’iwdgzdgFigure 1.1pENvHEliegTeREAP,,PO.E
dvHE.denleTlE¦ VEz,e..EnPdediPnEerrTPezvpENvHEneRHEPAEdvHEz,e..EerrHeT.EinEdvHEdPrE.Hzh
diPnEPAEdvHEliegTeR1EdvHEueTieG,H.E“eddTiGsdH.”EerrHeTEinEdvHEnHwdE.HzdiPn1EenlEdvHERHdvh
Pl.E“PrHTediPn.”EerrHeTEinEdvHE-ine,E.HzdiPnpENvHEliegTeREinz,slH.EinAPTRediPnEeGPsdEdvHE
nedsTHEPAEdvHEueTieG,H.EenlERHdvPlEreTeRHdHT.5EAPTEHweRr,H1EOHEzenE.HHEedEeEg,enzHEdvedE
year1gmonth1grdhgdaygrnegr..gitgkolegintcg3ikegk’rkgk’egNrnzrO.egMINYEARgzCgpdhen.zdehRg
dvi.EinlizedH.EdvedEidEi.EeEz,e..EueTieG,HETedvHTEdvenEenEin.denzHEueTieG,HpENvHEliegTeREe,.PE
zdhzSrkeCgk’egNzCzOz.zkoginglnikeSkzidgrCCiSzrkehgwzk’gerS’glrnkgitgk’egS.rCCg?egtglpO.zS1g§g
tglnikeSkeh5c
Objects
Objectsarecreatedfromclassesatruntime.Theycancontainandmanipulatedata.Mul-
dir,HEPGaHzd.EzenEGHEzTHedHlEATPREdvHE.eRHEz,e..ElH-inidiPnpE3nzHEeEz,e..E.szvEe.EDateg’rCg
GHHnElH-inHl1EeErTPgTeREzenEzTHedHEenlEs.HEPGaHzd.EPAEdvedEz,e..pENvHEHAAHzdEi.E.iRi,eTEdPE
eLlrdhzdKgk’eg.rdKprKeMCgCekgitgCkrdhrnhgkoleCgkigzdS.phegrgDategkolecgxigSnerkegrdgiOseSkg
zdgUrNrgwegpCegk’egnewgilenrkin1gr.idKgwzk’gk’egS.rCCgSidCknpSkin1grCgti..iwC€
Date myDate = new Date(6, 24, 1951);
Date yourDate = new Date(10, 11, 1953);
Date ourDate = new Date(6, 15, 1985);
Figure 1.1  UML class diagram for the Date class
Date
#year:int
#month:int
#day:int
+MINYEAR:int = 1583
+Date(newMonth:int,newDay:int,newYear:int)
+getYear():int
+getMonth():int
+getDay():int
+lilian():int
+toString():String
3
 The  official  definition  of  the  UML  is  maintained  by  the  Object  Management  Group.  Detailed  information  can  be  found  at 
http://www.uml.org/.

Random documents with unrelated
content Scribd suggests to you:

hajszolt vad. Dühös rémüldözések közben, minden utcasarkon
jobbra-balra sanditott merénylő diák után.
Mire az osztályba lépett, már nem ő volt a támadó. Várta az
eseményeket; ugy igyekezett menteni az irháját, hogy a tegnap este
történtekről egy árva kukkot se szólott, eltitkolta a veszélyt és a
három gonosztevőn keresztülnézett… Ronda kényszeritette magát,
hogy férfiasan viselkedjék. Nem sejtette, hogy micsoda félelmet áll ki
ahárom diák: Kieselsack, Ertzum és Lohmann; de azok se sejtették
aző félelmét.
Az órák után, akárcsak a diákok, Ronda is visszanyerte
bátorságát. Lohmannt azonban nem szabad kiszalasztani a körmünk
közül! Távol kell tartani Frölich kisasszonytól; ez hatalmi kérdés volt
Ronda számára és az önérzete nagyon megerősödött volna azáltal,
hogyha keresztülviszi. De hogy csinálja? – »De holnap ujra el kell
jönnie« – mondta a szinésznő.
Más megoldás nincs; Ronda ezt belátta és ekkor megijedt. Az
ijedelmében azonban volt valami édes.
Nem tudott vacsorázni, annyira izgatott volt és a gazdasszonya
intelme ellenére elment hazulról, hogy elsőnek érkezzen a dutyiba,
Frölich Róza öltözőjébe. Az a Lohmann ne kukoricázzék és ne
borozzon ott: ez lázadás, ezt már nem türheti Ronda.
A többi motivumnak még nem volt tudatában.
Amint sietve a »Kék angyal«-hoz surrant, észre sem vette a
kapun a szines szinlapot s pár percig fejevesztve kereste…
Hálaisten, ottvolt a szinlap. Szóval Frölich szinmüvésznő nem
utazott el, nem szökött meg, nem tünt el a föld szinéről, mert
szegény Ronda ilyesmitől tartott. Még énekelt, még cifrállott, még
csiklandozta az emberek szivét kéjes tekintetével. És miután ezzel a
megállapitással megelégedett, egy uj tanulságot vont le belőle.
Annak a Lohmannak el kell takarodnia onnan, ez azonban még nem
elég: ő maga, Ronda akar ott ülni Frölich szinmüvésznőnél… Az uj
tanulság azonban nyomban elsötétedett megint.

A terem még üres volt, majdnem sötét, barátságtalanul kongó;
számtalan piszkosfehér szék és asztal állott zavart
összevisszaságban. A kályha mellett egy kis pléhlámpánál ült a
gazda két férfival; kártyáztak.
Ronda azt akarván, hogy ne lássák, az árnyékos fal mentén
rebbent be, mint egy denevér. Amikor a müvész-szobába akart
surrani, megszólalt a gazda dörgedelmes hangon:
– Jó estét, tanár ur, örülök, hogy megint szerencséltet.
– Én csak – izé – Frölich szinmüvésznőt.
– Csak kerüljön beljebb és várja meg, már hétre jár. Mindjárt
hozok sört is.
– Köszönöm, – szólt Ronda – ezuttal nem óhajtok italt
fogyasztani… De – és kinyujtotta a fejét az ajtóból – később
valószinüleg több dolgot rendelek.
Ekkor betette az ajtót és az öltöző éjébe topogott. Mikor üggyel-
bajjal világot gyujtott, füzőket és harisnyákat vett le egyszékről, leült
az asztal mellé, amely olyan volt, mint tegnap; akabátja zsebéből
kihuzta a noteszét s a diákok neve mellé irtjegyekből az évvégi
kalkulust próbálta kiókumlálni. Mikor az»E«-hez ért, hirtelen átugrott
az »M«-re, mint reggel azosztályban. Később gondolkozott,
visszatért és Ertzum nevét toporzékoló undorral nézte; Kieselsack
jött sorra, azután Lohmann. A szoba néma és nyugodt volt és Ronda
szája lekonyult aboszuvágytól.
Kisvártatva már szállingóztak az első vendégek. Ronda
nyugtalankodott. Bejött a tegnapi kövér hölgy, egy viharvert fekete
kalapot viselt és igy szólt:
– A tanár ur? Csak nem aludt itt az éjszaka?
– Tisztelt asszonyom, én bizonyos fontos ügyek elintézése végett
jöttem.
– Tudjuk, micsoda ügyek azok.

A nő levetette a boáját és a bluzát.
– Ugye megengedi, hogy levessem a bluzom.
Ronda valamit dadogott és félrenézett. A nő sötétfehér
fésülködőköpenyben jött vissza és a tanár ur vállára vert.
– Annyit mondhatok, tanár ur, cseppet sem csodálkozom, hogy
visszajött. Róza minden vendége igy tesz. Aki egyszer megismeri,
azmeg is szereti, ugy bizony. Hiába, csuda gusztusos egy leány.
– E, e, e – jól jegyezzük meg – csakugyan, tisztelt asszonyom,
de én nem azért…
– Persze. Hanem a szive miatt. Mert szive az van. Az aztánvan!
A nő a tátongó fésülködőköpeny alatt a szivére szoritotta akezét.
Nyafogott és a tokája lóbálódzott a meghatottságtól.
– Olyan leány ez, hogy a légynek se vét. Az apja is betegápoló
volt. Akár hiszi, akár nem, ez a leány roppant szereti az öreges
urakat. És nemcsak ezért. – Összedörzsölte a hüvelyk- és a
mutatóujját. – Hanem mert a szive is erre viszi. Mert az öreguraknak
szüksége van egy ilyen jó leányra… Sokszor olyan jókedvü, hogy
már a rendőrség is megsokalja. Ilyen kicsi korátul ismerem.
Mindenkinek ajánlhatom.
A nő rátehénkedett az asztal peremére, Rondát rengeteg
személye és a széktámla közé préselte, egészen lefoglalta s
elkábitottaazzal, amit mesélt.
– Alig volt még a lelkem tizenhat éveske, már akkor is eljárt a
panoptikumba, meg az artisták közé, hiába, müvészvér… Na aztán
akadt egy öreg ur, aki tanittatni akarta. Hát ezt már tudjuk, mitjelent.
Mikor aztán Rózácska bajba jutott, szaladt ám hozzám ésbömbölt a
nyakamon. Mondtam neki persze: no most aztán nem eresztjük az
öreget, te még csak két és fél hét mulva töltöd be atizenhatodik
évedet, a vén zsivány fizetni fog, mint a köles. Csakhogy Róza nem
akarta. Hallott már ilyesmit? Sajnálta az öreget. Nem lehetett
rávenni, hogy pénzt kérjen tőle. Hanem ujra elment hozzá, a maga

jószántából; ebből láthatja, hogy micsoda leány.Egyszer mutatta
nekem az öreg urat az utcán, na hát: hálni jártbelé a lélek. A kis
körme hegyéig se érhetne fel magának, higyjeel, tanár ur!
Két ujjával egyenesen Ronda arcába bökött. Mivel pedig ugy
látta, hogy a tanár ur még nincs eléggé felizgatva, ismételte a
mondottakat:
– A kis körme hegyéig se, én mondom önnek! És különben is
undok fráter volt. Nemsokára meghalt és találja el, mit testált
Rózára? Afényképét egy diszkréten elzárt tokban. Na, kint voltunk a
vizből! Már egy zsenerózus ur, aki még csak nem is szegény, aztán
a lánytis szereti, az nem viselkedhet ilyen piszkosan.
– Természetesen, ámbátor – Ronda szerette volna valahogy
másra terelni a beszédet – ez nekem egészen mindegy, –nemde
ugyebár, – azonban…
Zavart mosolya dühösnek látszott.
–… belátja, hogy fiatal fiuknak, akikből egyrészt a szellemi
képességek, másrészt a kedély frissesége nem veszett ki teljesen, –
hogy ugy mondjam…
Az asszony élénken vágott Ronda szavába.
– Annyi baj legyen! A fiukkal már ugyis torkig van Róza, elhiheti,
ha én mondom!
Erősen megrázta Ronda vállát, hogy testileg is éreztesse vele az
igazságot. Azután letottyant az asztalról és igy szólt:
– Hogy elpletykáltam az időt. De most már aztán ideje, hogy a
dolgom után lássak. Tisztelt tanár ur, legközelebbi alkalommal
megint szivesen állok rendelkezésére.
Otthagyta Rondát, letelepedett a toalett-tükör elé ésbedörzsölte
zsirral az egész képét.
– Ne nézzen ide.

Ronda engedelmesen félrenézett. Hallotta, hogy a zongorán
valaki megüt néhány billentyüt. A terem tompán morajlott, mintha
féliglenne emberekkel.
– A maga diákjai – vetette oda az asszony, valami tárgyat
szorongatva a fogai között – ugyis hiába dugják ide apofájukat.
Ronda önkéntelenül az ablak felé tekintett. A vörös függöny
mögött csakugyan fejek árnyéka imbolygott.
A teremből hosszan elnyujtott »hohohohó« kiáltás hallatszott be.
Frölich Róza lépte át a küszöböt. A müvésznő nyomában Kiepert, az
artista széles termete zárta el a kijárást. Mikor mindketten bent
voltak az öltözőben, Kiepert odaorditotta Rondának:
– Nagyon hizelgő ránk nézve, tanár ur, hogy ön ismétmegjelent!
Frölich kisasszony ezt mondta:
– Csakugyan eljött! Na hál’ Istennek.
– Talán csodálkozik? – dadogta Ronda.
– Eszemágába sincs – felelte a müvésznő. – Segitsen inkább
kibujni a kabátomból.
– Hogy látogatásom oly gyors egymásutánban következett be…
–folytatta Ronda a megkezdett beszédet.
– No bizony mehetnék Kukutyinba zabot hegyezni, ha a
gavallérjaimat nem tudnám visszacsalogatni.
Karjait fülesfazék módjára feltartotta és nagy, vöröstollas
kalapjából egyre-másra szedegette ki a kalaptüket, közben huncutul
nevetett felfelé Rondára.
– Hiszen – szükölt Ronda – ön maga mondotta, hogy
leghelyesebb,ha ujra eljövök.
– Na hát – tört ki Róza kisasszonyból, fogta vörös kalapját és
mint egy tüzes kereket többször megforgatta a levegőben – ilyen jót

még nem nevettem!… Maga azt hiszi, öregem, hogy én csak ugy
könnyelmüen elszalasztom az urakat? Szépen!
Amig beszélt, kezét csipejére biggyesztette és ugy hajlongott
Ronda képibe.
Ronda megrémült, mint a gyerek, aki azt látja, hogy fönn a
szinpadon a tündér hamis haja a földre pottyan.
Frölich kisasszony rögtön észrevette a hatást és sietve hátrált.
Néhányat sóhajtott, fejét oldalt hajtotta és ezt mondta:
– Azért ne értsen félre, én nem ugy gondoltam. Nagyontéved, ha
azt hiszi. Éppen ellenkezőleg, mindig mondtam Gusztlnak: Mégis
csak doktor és mégis csak tanár; és én szegény tudatlan fiatal leány
vagyok, mit adhatok én neki… Mondja, Kiepertné, nem igaz, hogy
ezt mondtam magának?
A kövér asszonyság erősitgette, hogy ugy van.
– De Gusztl – mondta Frölich kisasszony és ártatlanul vonogatta
hozzá a vállát – mindig mondta, hogy ön el fog jönni… És csakugyan
eljött!
Az artista a sarokból, ahol átöltözött, illetlen hangokat eregetett
kifelé. A felesége jelekkel próbálta elhallgattatni.
– Különben is ki tudja, – folytatta Róza kisasszony – hogy ön az
én kedvemért jön-e… Hiszen még a kabátomat se akarja
lesegiteni… Hátha csak azok miatt a vacak kölykök miatt jön, akiket
nyársraakar huzni?
Ronda elvörösödve, segitségért kapkodva felelt a vádra:
– Elsősorban – hiszen ez csak természetes – nemde ugyebár –
tulajdonképpen…
Róza fájdalmasan ingatta a fejét.
A kövér nő felállt a toalett-asztal mellől, hogy közelebbről
avatkozhasson a beszélgetésbe. Kivágott piros bluzt vett magára. Ki

volt készitve. A képe ugyanugy fénylett, mint tegnap.
– Hát miért nem segiti le őnagysága kabátját – szólt oda
Rondának. – Na maga is tudja, mi illik.
Ronda ráncigálni kezdte a müvésznő kabátjának az egyik ujját, a
kabát nem jött le, ellenben Róza kisasszony a ráncigálás közben
hirtelen Ronda karjaiba tántorgott; a tanár urrémülten hagyta abba a
segitést.
– Igy huzza – oktatta Rondát a kövér nő. Férje, az artista, közben
nesztelenül előlépett. Már trikóban volt, köröskörül acsipején a
kövérségtől huskolbász tekergőzött, mint valami kigyó, nyakán pedig
egy szőrös szemölcs diszlett. Egy egészen kis darab ujságpapirt
tartott Ronda szeme elé.
– Olvassa csak ezt, tanár ur, ez ugyancsak megmondja annak a
piszok bandának.
Ronda azonnal magára öltötte fontoskodó arckifejezését, mellyel
minden nyomtatott betüt fogadott. Rájött, hogy a helybeli
szociáldemokrata párt lapjából való a papir.
– Lássuk csak, – mondta – hogy mit tudnak ezek.
– Épp a tanárok fizetéséről irnak – mondta az artista. – Hát nem
tegnap emlegettem?
– Ugyan hagyd! – szólt a felesége és kivette Ronda kezéből az
ujságot. – Fizetése van neki elég, valami másra volna inkább
szüksége. Ez nem a te dolgod, eredj inkább ki azokhoz a
marhákhoz.
A teremben tulröfögték, tulorditozták és tulfütyülték a zongora
bömbölését. Kiepert engedelmeskedett. Hirtelen magára öltötte az
öntelt arckifejezést, mellyel már tegnap is csodálatba ejtette Rondát
és kilibegett a terembe, mely lármásan fogadta magába.
– Ez elkotródott – mondta a kövér hölgy. – Jöjjön, tanár ur,
segitsük gyorsan Rózára a ruhákat, mig vissza nem jön.

– De szabad neki is segiteni? – kérdezte Frölich kisasszony.
– Nem ujság az neki, hogyan vetkőznek, vagy öltöznek a nők. Ki
tudja, hátha még hasznát veheti egyszer az életben.
– Hát ha ugy tetszik – mondta Frölich kisasszony és lebocsátotta
a szoknyáját. A füzője már nyitva volt és Ronda bizonyos rémülettel
vette észre, hogy a ruha alatt mindenhol fekete és fénylik. De még
rettenetesebb volt számára az a felfedezés, hogy a müvésznőn
nincs alsószoknya, csak egy bő, fekete bugyogó. Róza őnagysága
nem igen látszott ezzel törődni, egész szelid képet vágott hozzá.
Ronda azonban ugy érezte, minttha először bizsergetnék meg
ismeretlen misztériumok és fontos dolgok tünnének fel, a felszin alól,
a jópolgári felszin alól s ekkor látta, hogy az élet tele van rendőri
kihágásokkal. És Ronda félelemmel teli büszkeséget érzett.
Odakünn Kiepernek óriási sikere volt és belekezdett valami uj
számba.
– Most mégis talán el kellene fordulnia, – vélte Róza kisasszony
– most mindent ledobok magamról.
– Ugyan, kis csacsi, hiszen a tanár ur okos és komoly férfi, mit
árthat az neki.
Csakhogy Ronda mégis megfordult. Feszülten fülelt a ruhák
suhogására. Amint ott állt a sarokban, a kövér hölgy hamarosan a
markába nyomott valamit.
– Itt van, fogja.
Ronda elvette, anélkül, hogy tudná, micsoda.
Valami feketeség volt, egész kicsire össze lehetett gyürni és
roppantul meleg volt. Olyan meleg volt, mint valami állat. Egyszerre
csak hirtelenül kicsuszott Ronda kezei közül, mert felfedezte, miért
oly meleg; aszinmüvésznő fekete bugyogója volt!
Közben Ronda felszedte a földről a furcsa jószágot és ijedtében
csöndesen meglapult a sarokban.

Gusztl és a müvésznő munka közben sietve néhány szinpadi
szakkifejezést váltottak egymással. Kiepert elkészült aszámával.
– Most ki kell mennem – mondta a kövér nő – segitsen maga
Rózának az öltözködésben.
És mivel Ronda nem mozdult, folytatta:
– Megsiketült?
Ronda felriadt. »Elaludt«, mint a diákjai szokták, ha hosszura
nyulik valamelyik óra. Azután türelmesen megfogta a füzőzsinórokat.
Frölich kisasszony a vállán keresztül mosolygott fel rá.
– Mért forditott hátat egész idő alatt? Hiszen már régen fel
vagyok öltözve.
Narancsszinü alsószoknyában állott Ronda előtt.
– Különben is – folytatta azután – csak Gusztl miatt mondtam az
elfordulást. Engem nem bánt, amugy is szeretném tudni, hogy
tetszikmagának a termetem?
Ronda egy árva kukkot sem felelt és Róza kisasszony
türelmetlenül forditotta el tőle a fejét.
– Jól huzza össze!… De ügyetlen. Adja csak ide, sokat kell még
magának tanulni.
A müvésznő maga füzte össze magát. És mert látta, hogy Ronda
tétlen kezét még mindig esetlenül kinyujtva tartja maga elé, igyszólt:
– Hát sehogy sem tetszem magának?
– Oh hogyne, természetesen – dadogta Ronda megrettenve.
Azután végül nagynehezen kinyögte, hogy a fekete öltözetben – a
feketében – még csinosabbnak találta.
– Kis malac – mondta neki Frölich Róza szinmüvésznő.
A füzőkérdés rendbejött… Gusztlnak is óriási sikere volt a
férjével egyetemben.

– Most azonban én jövök – mondta Frölich Róza kisasszony. –
Csaka képemet kell még kicsit rendbehozni.
A tükör elé ült, lázasan babrált egy csomó tégely, üveg és
festékrudacska között. Ronda egyebet nem látott, csak vékony
karjait, amint folytonosan a levegőt szántották és elhomályosult
szemei előtt valami ködös játék keringett. Rózsaszinü, halványsárga
vonalak keletkeztek, váltakoztak és mindegyiket, mielőtt eltünt volna,
máris másik váltotta fel. Rondának ismeretlen tárgyakat kellett az
asztalról elhoznia. A müvésznőnek szédületes munkája közben még
arra is maradt ideje, hogy lábával dobbantson, ha Rondanem azt
vette fel az asztalról, amire szükség volt és tekintetével
megcsiklandozta Rondát, ha a kért tárgyat hozta. Bizonyos, hogy a
kisasszony szemei egyre jobban tüzeltek. Végül Ronda világosan
látta, hogy mindezt csak a tégelyek müvelik, melyeket őnyujtogatott
át neki és melyekkel a nő bedörzsölte a szeme alját. Azok a piros
pettyek okozzák mindezt a szeme szögletében, aszemöldök fölött
azok a vörös vonalak és az a fekete zsir, amitszempillájára dörzsölt.
– Na még csak a szájam festem ki – mondta Róza.
És egyszerre csak Ronda maga előtt látta Frölich kisasszony
tegnapi szines arcát. Az igazi, a tulajdonképpeni Frölich Róza csak
most jelent meg előtte. Ronda látta, hogyan alakult ki éscsak most
jött rá a nyitjára. Bepillanthatott egy percre abba a
boszorkánykonyhába, ahol a szépséget, a vidámságot és a lelket
készitik. Csalódottnak és beavatottnak érezte magát. Ezeket
gondolta gyors egymásutánban:
– Ennyi az egész?
És azután:
– Óriási!
A szive hangosan dobogott. Közben pedig a müvésznő egy
ronggyal törülgette le a kezéről a szines zsirt, ami Ronda szivét
megdobogtatta.

Azután Róza feltette a tegnapi elgörbült diadémot a fejére… A
teremben tombolni kezdett a nép. A müvésznő vonogatta a vállát és
szemöldökeit morcolva, megkérdezte Rondát:
– Tetszik magának itt?
Ronda egy betüt se hallott.
– Na most mindjárt csudát lát. Tudniillik ma valami rémitő
bánatos nótát danolok, annak a tiszteletére huzok hosszu szoknyát
is magamra… Adja csak ide azt a zöldet!
Ronda előbb jobbra és balra lendült a ruhák között, ugy hogy a
kabátja szárnyai csak ugy röpdöstek. Végre is meglelte a kért zöld
vacakot és egy szempillantás alatt máris ott állott előtte Róza
egybeszabott, elomló tündérruhában, csak az ölén és a combján
huzódott körül egy rózsafüzér… Felnézett Rondára, Ronda egy szót
seszólt; de a lány meg volt elégedve az arckifejezésével és utána
nagystilü mozdulatokkal lépegetett az ajtó felé. Kevéssel aküszöbön
innen megfordult, mert eszébe jutott, hogy hátul kétzsirpecsét van a
ruháján és most Ronda látja azokat.
– Ezt nem kell azoknak a majmoknak mutogatnom, nincs
igazam? – mondta mélységes megvetéssel. Azután
méltóságteljesen megjelent atágra nyitott ajtó küszöbén. Ronda
elugrott, még megláthatnávalaki.
Az ajtó félig nyitva maradt. Ott künn orditoztak:
– Boldog Isten! – meg: Zöld selyemruha van rajta! – és: – De lóg
a szoknyája!
Némelyek kuncogtak is.
A zongora valami pityergős dalba kezdett. Diszkantban nedves
volt a zokogástól, basszusban pedig krákogott és tüszkölt.
Ronda hallotta Róza kisasszonyt énekelni:
Ragyog a hold s a csillagoknakezre

Figyelj a halkezüsttavon,
Bolygó szerelmed sir felepedezve.
A hangok ugy bugyborékoltak az énekesnő bubánatos lelkéből,
mintbágyadt fényü gyöngyszemek fekete örvényben.
Ronda ezt gondolta magában:
– Igen ám!… Ugy bizony!…
Enyhe és bus érzések fogták el. A réshez lopódzkodott és látta,
hogy a lámpák között miként keletkeznek és simulnak el ismét
Frölich Róza kisasszony zöld ruhájának a ráncai… A müvésznő
hátravetette a fejét; Ronda látta a nő rozsdavörös figuráját, rajta az
elgörbült diadémot, kifestett arcát s magasra szökkenő fekete
szemöldökét. Az elülső asztalok egyikénél kék gyapjukabátban
elragadtatott hangon lelkesült egy tagbaszakadt vidéki pasas.
– Jézusom, de gyönyörü! Nahát, elmegy a kedvem a
feleségemtől,ha ilyet látok.
Ronda fitymáló jóindulattal nézte végig a vidékit; ezt gondolta
magában:
– Igen ám… Ugy bizony…
Ez nem volt ott, amig a müvésznő készült! Ez nem tudta, hogy
miből van a szépsége, nem volt hivatva fölötte itéletet mondani. Ugy
kellett vennie, ahogy kapta és még örülhet rajta, hogyha a
gyönyörüséges Róza kisasszony elvette a gusztusát a saját
feleségétől.
A versszak panaszosan végződött:
A csónak ring bus ritmusánnevednek,
Szivem zokog, a csillagoknevetnek.
Csakhogy odalenn a hallgatóság között megint elröhögte valaki
magát. A hangulatából kiszakitott Ronda hiába kutatta a tettest. A

müvésznő ujra nekikezdett a második strófának: »Ragyog a hold«…
Arefrénnél: »a csillagok nevetnek« már hatan vagy heten nevettek.
Egyik valahol a középen ugy kodácsolt, mint valami néger. Ronda
felfedezte: csakugyan néger volt! Ez a fekete megmételyezte az
egész környezetét, Ronda több nevetésre torzuló arcot pillantott
meg. Ellenállhatatlan vágy fogta el, hogy ezeket az elferdült nevető
izmokat ismét helyükre rángassa. Hol az egyik, hol a másik lábára
állott, szenvedett…
Frölich kisasszony harmadszor jelentette ki:
Ragyog ahold…
– Ezt már tudjuk – mondta valaki szélesen és határozottan.
Néhányan a jobbindulatuak közül csillapitgatták a folyton erősbödő
nyugtalanságot. De a fekete rontó vigyorgása elharapódzott az
egész teremben. Ronda egész sortátongó szájüreget látott sárga
agyarakkal, vagy félholdszerü fehér, egyik fültől a másikig huzódó
fogsorokkal; körszakállas, vagy felkunkorodó bajuszkás férfiakat.
Ronda felismerte akereskedőtanoncot, tavalyi diákját, aki tegnap a
kikötő felé vivő meredek utca járdáján az arcába röhögött és aki
most Frölich kisasszony tiszteletére akkorára tátotta a száját, hogy
egy szekér is megfordulhatott volna benne. És Ronda érezte, mint
száll fejébe a vére, a félelemtől hajszolt zsarnok dühe. Frölich
kisasszony mostmár az ő magánügyévé vált! Helyt állt érette, a
kulisszák mögül leste, hogy jól csinálja-e a dolgát, végleg össze volt
vele kozmásodva és védőjének érezte magát! Személyes sértésnek
vette, havalaki gátolni merészkedett őnagysága érvényesülését! Az
ajtóba kapaszkodott, mert attól félt, hogy nem tudja magát
türtőztetni, kirohan és fenyegetésekkel, lökésekkel és egyéb
fenyitésekkelfigyelemre kényszeriti az iskolakerülő diákok seregét.
Lassanként ötöt-hatot lelt közülök. A terem tömve volt régi
tanévek elvetemült diákjaival! A vastag Kiepert és a vastag Gusztl
körüljárták a termet, kocintottak a vendégekkel, barátkoztak. Ronda
lenézte őket, a romlás lejtőjén haladnak, Frölich kisasszony azonban

tisztult magasságban áll fölöttük, zöld selyemruhájában, elgörbült
diadémmal a fején: csakhogy senki se volt rákiváncsi!
– Elég! Hagyja abba!
És Ronda tehetetlenül állott velük szemben! Rettenetes volt!
Bekergethette a diákokat a dutyiba, feladatokat adhatott fel nekik »át
nem vett« tárgyakról, parancsolhatott nekik, a szellemüket
elnyomhatta és ha valamelyik gondolni próbált valamit, rájuk
ripakodhatott: »Maga ne gondoljon semmit!« De arra nem
kényszerithette őket, hogy szépnek tartsák azt, amit őszépnek tart.
Ez volt az elvetemültségük utolsó mentsvára. Rondazsarnoki
ösztöne a végső megpróbáltatásokat állta…
Alig birta magát türtőztetni. Levegő után kapadozott. Menekülni
akart ebből az ájulatos izgalomból, vonaglott a vágytól, hogy egy
ilyen koponyát egyszer felszakithasson és a szépérzéket meggörbült
ujjakkal benne helyreigazithassa.
Csodálta Róza kisasszony önbizalmát, aki vidám tudott maradni
ésa kiabálások és pisszegések közben még kezével csókokat is
dob aközönségnek! Még a vereségében is óriási ez a nő… Ebben a
pillanatban Róza félig elfordult a közönségtől és leszólt valamit a
zongorásank. És fegyelmezett és szolgálatkész arca egyszerre
váratlanul, keserüen és kajánul elfintorodott egyetlen ránditással,
mint valami moziképen. Rondának ugy tetszett, hogy a zongorához
való lebeszélgetés kissé tovább tart a kelleténél és az elfordulás a
lehetőséghez képest tulságosan sok. Tovább már nem szabadna
folytatni; a zsirfoltok a müvésznő hátulsó részén érvényre jutnának…
Egyszerre megint vidáman a magasba lendült Róza, összefogta zöld
selyemruháját, magasra vetette narancsvörös alsószoknyáját és
tiszta szivből elkezdett trillázni:
Mert szüz vagyok, kis gyengeszüz…
A közönség honorálta a müvésznő vidámságát, tapsoltak és
ujráztatni akarták. Róza, az ajtót bevágva, visszament az öltözőbe,
rövideket lélegzett és ezt kérdezte:

– Na, mit szól hozzá? Kivágtam magam, mi?
A dolog rendbejött, mindenki meg volt elégedve, csak egészen
hátul a teremben, a fal mellett, a kijárat közelében, Lohmann
támaszkodott meg, fakó és messze tekintetét összekulcsolt karjára
szögezte és azon gondolkozott, hogy versei, az ő szegény versei,
amelyek a közönséges emberek kacajától sötét utcákba menekültek,
most az éjjeli levegőhullámokon elindultak egy hálószoba ablaka
felé, halkan megkopogtatják majd az ablakot és bent senki se
hallja…
A kövér Gusztl meg Kiepert bejöttek az öltözőbe. Frölich
kisasszony fejét nyakába huzta és sértődötten mondotta:
– Csak dumálja még egyszer a fülembe, hogy azt a vacakot
énekeljem, amit az a hülye kölyök firkált!
Ronda hallotta ezt, de nem gondolt semmit mellette.
– Fiacskám, – magyarázta a kövér asszonyság – a közönségben
nem lehet bizni, azt mindenki tudja. Ha nem lett volna itt az a pocsék
néger, akkor bőgnek és nem nevetnek.
– Különben fütyülök rá, – mondta Frölich kisasszony – főként ha
a tanár ur hozat valami jót inni. Mi jót hozat a tanár ur inni?
És két ujját, ugyanugy, mint tegnap, egészen könnyedén az álla
alá biggyesztette Rondának.
– Bort? – tanácsolta Ronda.
– Helyes – szólt elismeréssel a kisasszony. – De milyet?
Ronda nem volt járatos a borokban. Segitségért könyörgött a
szemeivel, mint a diák, aki belesül a leckéjébe. Kiepert és nője
feszült izgalommal lesték a szavait.
– P-vel kezdődik – mondta felvidulva Róza kisasszony.
– Palugyai – jegyezte meg Ronda és beléizzadott. Ő nem volt
modern filológus s igy nem is tartozott tudni, mi áll a borlapon.

Ismételte:
– Palugyai.
– Azt csak igya maga ki – rimelt rá Róza. – P után ekövetkezik.
Ronda nem tudta, mi lehet az.
– Azután jön zs, utána g és ő… Na, maga se jön rá semmire.
Igazán furcsa, hogy semmire a világon nem jön rá!
Ronda képe egyszerre felderült a naiv boldogságtól.Kitalálta:
– Pezsgő.
– Na, hál’ Istennek – mondta a müvésznő. Gusztl és Kiepert is
helyeselték a megoldást. Az artista elment, hogy megrendelje. Mikor
visszafelé jött a termen keresztül, a vendéglős maga cipelt előtte egy
nagy hütővödröt, amiből két nyak kandikált kifelé. Kiepert trikóban
volt. Felfujta a pofáját, a közönség vihogottkörülötte.
A müvész-szobában lassacskán ugyancsak felvidámodtak.
Ronda minden pohárnál ezt gondolta: – ez az én borom, ebbe
semmi beleszólása Lohmannak. Frölich kisasszony is éppen ezt
mondta:
– Pezsgőt bizony még egyszer se fizettek a maga drágadiákjai.
Róza hevesebben kezdte szemével csiklandozni Rondát.
– Törődöm is én ővelük.
És mivel Ronda nem értette el a célzást, egyet sóhajtott. Kiepert
felemelte a poharát.
– Éljen a szerelem! Tanár ur!
És kettejükre hunyorgatott. Őnagysága boszusan mormolta a
fogaiközött:
– Nehéz egy ember.

A kövér hölgynek át kellett öltöznie a legközelebbi számhoz, mert
az ének után megint akrobatamutatványok jöttek sorra.
– De azt már mégse szabad meglátnia, – mondta – hogyan bujok
bele a trikóba. Neem, olyan jóba még nem vagyunk.
Három széket egymás hegyébe rakott, a támláit elfüggönyözte
szoknyákkal és mögéjük bujt. Fölfelé elég magas volt a fal, de
szélességében bizony Gusztl teste tulterjedt rajta. A többiek
minduntalan megpillanthattak egy-egy kibuggyanó darabkát husából
ésilyenkor egyet rikkantottak. Róza kisasszony végigdőlt az
asztalon, ugy kacagott és sikerült Rondát a kicsapongásban annyira
magával ragadnia, hogy többször nyujtogatta a nyakát és
bekacsintgatott Gusztl rejtekébe. Gusztl vihogott, Ronda
visszatorpant és azutánujra pedzette a félszeg tréfát.
A müvésznő fáradtan felkelt. Visszatartotta a lélekzetét és ezt
mondta:
– Biztos vagyok, hogy velem ilyet nem merne megtenni.
Azután fujt egyet.
A terem uj müvészi attrakciót kivánt, lármázott, a zongora már
nem elégitette ki. A kövér házaspár kiment.
Rondával együtt maradván, minden erejét összeszedte
őnagysága. Ronda zavartan izgett-mozgott. Egy pillanatig csend volt
az öltözőben, künn kornyikáltak. A nő fanyalogva mondta:
– Már megint az a vacak hazafias dal. Jaj de utálom!… De lássa,
maga észre se vette, micsoda változás történt itt tegnap óta.
– Itt a dutyiban? Itt? – dadogott Ronda.
– Ne is érdeklődjék, maga semmit se vesz észre… Mi volt tegnap
atükrön, jobbról és balról?
– Igen, igen… hogyne, természetesen… két virágcsokor.

– S maga hálátlan észre se veszi, hogy a maga tiszteletére mind
a kettőt tüzrevetettem.
A müvésznő duzzogott, foghegyről beszélt. Ronda a kályha felé
bandzsitott és belevörösödött az örömbe; mert Frölich szinmüvésznő
őnagysága feltüzelte Lohmann csokrait. Ronda nyugtalankodni
kezdett; az az ötlete támadt, hogy Lohmann két csokra helyett másik
két csokrot hoz, melyeket ő maga ad át majd a müvésznőnek…
Megállapitotta, hogy a vörös függöny mögött nincs senki. És
Lohmannal mindenáron vetélkedni akart.
– Kedves – hogyne, természetesen – kisasszony, tegnap –
nemdeugyebár – még érintkezett a diákokkal?
– Miért ment el oly korán? Mit csináljak, hogyha, se szó, se
beszéd, bejönnek… De megmondtam nekik, különösen az
egyiknek…
– Ez szép magától… És mikor ma este ide jött a vendéglőbe –
nemde ugyebár – találkozott a három diákkal?
– Képzelheti, hogy örültem nekik.
– Kedves kisasszony, ha nem tud lemondani a virágról és a
pezsgőről, akkor hozzám forduljon és ne hozzájuk. Nem tudom
eléggé kárhoztatni azt, hogy a diákokat ide csábitja.
És Ronda fülig vörösödött, felvidult, minden tehetsége
csodálatosan meghatványozódott és most már egész világosan
látta, hogy azt a vacak dalt, amit őnagysága megvetéssel vett le a
programmról, azt a dalt Lohmann irta. Ronda hozzátette:
– És azt a dalt se énekelje többet. Egyáltalán sohase énekelje
Lohmann dalait.
– És ha nem tudnék róla lemondani, – kérdezte a szinésznő
mosolyogva – irna nekem maga?
Ronda erre nem volt elkészülve, de azért megnyugtatta:
– No, majd meglátjuk.

– Próbálja meg! És különben is mit fél? Csak el kellkezdeni.
A nő összecsücsöritette a száját és az arcát feléje emelte.
De Rondát nem vette rá a lelke. Gyámoltalanul, tétova
bizalmatlansággal nézett rá. A nő megsokalta:
– Akkor mért van itt?
– Mert a diákoknak nem szabad – hebegte.
– Jó, jó. – És kikapcsolta a ruháját. – Át kell öltöznöm.Segitsen.
Ronda segitett. A kövér házaspár szomjasan érkezett vissza, a
diadaltól mámorosan. Az egyik üvegben volt még egy pohárkára
való. Kiepert késznek nyilatkozott még egy üveg pezsgőt hozni.
Ronda szépen megkérte rá. Róza kisasszony gyorsan töltött, mert
énekelnie kellett. A dicsőség szólitotta. A pezsgő egyre édesebb lett,
Ronda egyre boldogabb. Az artista most kézen mászott ki a
szinpadra és határtalan tetszést aratott. Ettől kezdve igymutatkozott
a közönségnek.
Róza temperamentuma minden számnál villanyosabb lett s a
közönség mindig jobban és jobban elismerte. Ronda gondolni se
mert arra, hogy egyszer fel kell kelnie erről a székről. Már az utolsó
vendégek is szállingóztak. Róza az örömtől sugárzott és igyszólt:
– Édes tanárkám! Vasárnaponkint itt még cifrábban megy.
És erre csuklani kezdett. Ronda csodálkozva nézte a mámor
fátyolán keresztül, amint a nő az orrát az asztalon heverő kétkezébe
dugta és elgörbült diadémja rángatózott.
– Bizony azért ez az élet se fenékig tejföl – fakadt ki Róza. –
Cifra nyomoruság.
A nő még egy verset jajgatott. Ronda kinosan erőlködött, hogy
megvigasztalja. Közben kivülről bejött Kiepert, felemelte Rondát a
székről és kijelentette, hogy kikiséri. Az ajtóban eszébe jutott neki
valami. Megfordult, a keze hadonászott a levegőben és Róza felé
erőlködött, aki már aludt és ezt motyogta a fülébe:

– No, majd megpróbálunk valamit tenni.
Ezt a tanárok a vizsga előtt szokták mondani annak a diáknak,
akit át akarnak csusztatni, aki iránt rokonszenvet éreznek. Ronda
azonban ezt még egyetlen egy diáknak se mondta, egy diák iránt se
érzett rokonszenvet.

Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
textbookfull.com