100% found this document useful (12 votes)
198 views

Download full Data Structures with C Using STL 2nd Edition William H. Ford ebook all chapters

Data

Uploaded by

ndoyerossou3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (12 votes)
198 views

Download full Data Structures with C Using STL 2nd Edition William H. Ford ebook all chapters

Data

Uploaded by

ndoyerossou3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

Download the full version of the ebook at ebookname.

com

Data Structures with C Using STL 2nd Edition


William H. Ford

https://ebookname.com/product/data-structures-with-c-using-
stl-2nd-edition-william-h-ford/

OR CLICK BUTTON

DOWNLOAD EBOOK

Download more ebook instantly today at https://ebookname.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Data Structures Using C 2nd Edition A. K. Sharma

https://ebookname.com/product/data-structures-using-c-2nd-edition-a-k-
sharma/

ebookname.com

ADTs Data Structures and Problem Solving with C 2nd


Edition Nyhoff

https://ebookname.com/product/adts-data-structures-and-problem-
solving-with-c-2nd-edition-nyhoff/

ebookname.com

Numerical linear algebra with applications using MATLAB


1st Edition William Ford

https://ebookname.com/product/numerical-linear-algebra-with-
applications-using-matlab-1st-edition-william-ford/

ebookname.com

The Power to Assume Form Cornelius Castoriadis and Regimes


of Historicity 1st Edition Sean Mcmorrow

https://ebookname.com/product/the-power-to-assume-form-cornelius-
castoriadis-and-regimes-of-historicity-1st-edition-sean-mcmorrow/

ebookname.com
Taxation and State Building in Developing Countries
Capacity and Consent 1st Edition Deborah Brautigam

https://ebookname.com/product/taxation-and-state-building-in-
developing-countries-capacity-and-consent-1st-edition-deborah-
brautigam/
ebookname.com

The Analysand s Tale Robert Morley

https://ebookname.com/product/the-analysand-s-tale-robert-morley/

ebookname.com

Databook of Nucleating Agents First Edition Wypych Anna

https://ebookname.com/product/databook-of-nucleating-agents-first-
edition-wypych-anna/

ebookname.com

Children and Pollution Why Scientists Disagree 1st Edition


Colleen F Moore Phd

https://ebookname.com/product/children-and-pollution-why-scientists-
disagree-1st-edition-colleen-f-moore-phd/

ebookname.com

Contesting the Politics of Genocidal Rape Affirming the


Dignity of the Vulnerable Body 1st Edition Debra B.
Bergoffen
https://ebookname.com/product/contesting-the-politics-of-genocidal-
rape-affirming-the-dignity-of-the-vulnerable-body-1st-edition-debra-b-
bergoffen/
ebookname.com
Anzio 1944 The Beleaguered Beachhead First Edition Steven
J. Zaloga

https://ebookname.com/product/anzio-1944-the-beleaguered-beachhead-
first-edition-steven-j-zaloga/

ebookname.com
DATA STRUCTURES
with C Using STI
Second Edition

an ” ‘ = Poa -

: a

William Ford @ William Topp


100524900
Data Structures with C++
Using STL
Data Structures with C++
Using STL

William Ford
University of the Pacific
Computer Science Department

William Topp
University of the Pacific
Computer Science Department

Prentice Prentice Hall


es
eC
ie
§=©Upper Saddle River, NJ 07458
{oos +4100
QA
Tb.
Library of Congress Cataloging-in-Publication Data
(Be
Ford, William & Topp, William
Crs Data structures with C+ + using STL / William Ford, William Topp
p.cm.

ay Includes index.
ISBN 0-13-085850-1
1. C++ (Computer program language) 2. Data structures (Computer science) I. Title,
William R., 1939 II. Title.

QA76.73.C153 F675 2001


005.7’°3—dc21 2001032333

Vice President and Editorial Director, ECS: Marcia J. Horton


Acquisitions Editor: Petra J. Recter
Editorial Assistant: Karen Schultz
Vice President and Director of Production and Manufacturing, ESM: David W. Riccardi
Executive Managing Editor: Vince O’Brien
Managing Editor: David A. George
Production Editor: Audri Anna Bazlen
Director of Creative Services: Paul Belfanti
Creative Director: Carole Anson
Art Director: Heather Scott
Art Editor: Adam Velthaus
Manufacturing Manager: Trudy Pisciotti
Manufacturing Buyer: Lisa McDowell
Marketing Manager: Jennie Burger

Prentice © 2002 by Prentice Hall


Hall Prentice-Hall, Inc.
Upper Saddle River, New Jersey 07458

All rights reserved. No part of this book may be reproduced, in any form or by any means, without permission in
writing from the publisher.

The author and publisher of this book have used their best efforts in preparing this book. These efforts include the
development, research, and testing of the theories and programs to determine their effective-ness. The author and
publisher make no warranty of any kind, expressed or implied, with regard to these programs or the documenta-
tion contained in this book. The author and publisher shall not be liable in any event for incidental or consequen-
tial damages in connection with, or arising out of, the furnishing, performance, or use of these programs.

Printed in the United States of America

LOSS /o6

ISBN 0-13-085850-1

Prentice-Hall International (UK) Limited, London


Prentice-Hall of Australia Pty. Limited, Sydney
Prentice-Hall Canada Inc., Toronto
Prentice-Hall Hispanoamericana, S.A., Mexico City
Prentice-Hall of India Private Limited, New Delhi
Prentice-Hall of Japan, Inc., Tokyo w~
Pearson Education Asia Pte. Ltd., Singapore
Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro

4
To our wives, who provided love and understanding throughout the
seemingly endless authoring process.

To the designers and implementers of the Standard Template Library (STL),


who unified the study of C++ data structures and allowed students
to apply very powerful concepts to applications programming

To our university, which gave us time, support, and resources.


A) Marky cegatenut oneal hig wved teehee eit
fessor, aevoiae

VP) rene 1 olyOtiet tonlisa? oA oer


wersal) Wvredée (iw 29" ah a so Dias 4

Pye es Se ye m expos:
OU Nahe Y 7
shyt ai iy il) WA Tal WR
\

62 @ am eat. myees

al .

Lhe Heed te = a + piblieng tia


=
‘ ‘
y
©
od
oti eoqay aiee Ty Leet agip@ 4
= ae
ms ies aaa ia -
mu ios
ae
hy
:,

y 4 tow ow Lo apeee a acy et ; _


. =
ive § ehNisteaiealead . _
~ os

* S247IAas
.
7

a =. a

+) Seige
——
yy p= os Dae
i) _
Brief Contents

Chapter 1 Introduction to Data Structures ..........0000


cece cece nen cees 1

Chapter 2 Object Design Techniques ............00ceceucuccucunsucenens 53

Chapter 3 Introduction to Algorithms ..........000


ccc cence nese nena 113

Chapter 4 pie: Vector Container cine oc a wink sons ei ucodes pacts Canis a ai Oe ene 183

Chapter 5 Pointers And Dynamic Memory ...........2000000ceevuunceue's 219

Chapter 6 The List Container and Iterators ............


ccc cece 281

Chapter 7 SLACKS Bree geet toe ee tet nn natal Ue yoakine’ m Mattes SEO ae ete ala Pees 327

Chapter 8 Queues and Priority Queues ............00c


cece ene en enaenees 384

Chapter 9 LIDKOGILISES B40 E0 lors Ooi, '5:«ners fos ets ae nt ee eho eae 436

Chapter 10 BINALY NCGS oparnGre pa nnn de 2 oe ek Ay ee eee 502

Chapter 11 Associative Containers O08 oo ba inv veins he kOe aoe vie hae ee wen 586

Chapter 12 Advanced Associative Structures ..........00


ccc cuneuncecuaee 646

Chapter 13 Inheritance and Abstract Classes ............00cucuucuuceees 727

Chapter 14 Heaps, Binary Files and Bit Sets .............0


0c cece cence nneee 790

Chapter 15 MECUISIVE AIQOMUNINS oie cats tne ee leee e r in bao cba ces 861

Chapter 16 Glapinse wider ee ees ate aa oi SRG ee ea ees 939


; i
_ or

_ = —

eineinod Yen

r - cia cbvs ssn oss Sinutouw?


atetlet eoteabaund Tye
a 5...- Leigh es Soup aha ae

¢rr PPP IPS Prete peat ory iinet olneignaieetel)

gor appar eree -vartanned sassevaat 9


ire | venuesss, wor simenyS
bok evmie,

ae a PP __ eotenetl bammoninane ASeeT >

7
a ee ore ieee (oo RaMRUO hohe tam Me
2 ead 7
ae f . i Va:
© aad ®), aes vobpetteleeeres eee ece Atal eile
a .

7 > ; L Pa ».- 4a) as _ «<< « 2eeg li a ate


eas teen = an ‘

Coat on

eg:
eee &4 «6 sbve t@ 2

4 ore) ie 7
.

ata) ++ js soe
kt oes | apluludé evitetoas.
“ila
. i
_
cot
TY

:
oct
| peti
also Or ewlee bear! ove I

ras oe ence os biases O68 es a aaa Met A


a |
Ke _
aur
Tun -'s Cems eeienene ae) =

m™ :
7
pee!bed
_
Je
-

ae
Contents

POETACE Pete ee cee eR ee ee Ee Se er Tes es wie ee Xxiii

1 Introduction to Data Structures ...........


00 cece eects 1

1-1 WHAT IS THIS BOOK ABOUT? 2


Data Structures and Algorithms 5

1-2 ABSTRACT VIEW OF DATA STRUCTURES 5


The time24 ADT 6

1-3 AN ADTASA CLASS 8


The C++ Class 8
Private and Public Sections 9
Encapsulation and Information Hiding 9
The time24 Class 9

1-4 IMPLEMENTING C++ CLASSES 13


Implementation of the time24 Class 14

1-5 DECLARING AND USING OBJECTS 18


Running a Program 18

1-6 IMPLEMENTING A CLASS WITH INLINE CODE 21


Compiler Use of Inline Code 22
Contents

APPLICATION PROGRAMMING INTERFACE(API) 23

Random Numbers 24
The randomNumber API 24
Application: The Game of Craps 26

STRINGS 28
The string Class 30
Additional String Functions and Operations 31

CHAPTER SUMMARY 36
CLASSES AND LIBRARIES INTHE CHAPTER 37
REVIEW EXERCISES 38
Answers to Review Exercises 40

WRITTEN EXERCISES 42
PROGRAMMING EXERCISES 48
PROGRAMMING PROJECTS 51

2 Object DesignTechniques .....-.00cccrccncsecreneennacsstaneneans 53

2-1 SOFTWARE DESIGN _ 55


Request and Problem Analysis 56
Program Design 57
Designing the Calendar Class 58
Program Implementation 62
Implementing the Calendar Class 62
Program Testing and Debugging 64
Program Maintenance 68

2-2 HANDLING RUNTIME ERRORS _ 68


Terminate Program 69
Seta Flag 69
C++ Exceptions 70

2-3 OBJECT COMPOSITION 74


The timeCard Class 75
Implementing the timeCard Class 77

2-4 OPERATOR OVERLOADING 82


Operator Functions 85
Operator Overloading with Free Functions 86
Operator Overloading with Friend Functions 87
Overloading Stream I/O Operators 89
Member Function Overloading 94 5

CHAPTER SUMMARY 97
CLASSES AND LIBRARIES INTHE CHAPTER 98
Contents xi

REVIEW EXERCISES 99
Answers to Review Exercises 100

WRITTEN EXERCISES 102


PROGRAMMING EXERCISES 107
PROGRAMMING PROJECTS 108

Sernitroguction 0 AIGONURING oi vacs oa sac oe 044s ode es cma eee nak 113

3-1 SELECTION SORT 115

Selection Sort Algorithm 116

3-2 SIMPLE SEARCH ALGORITHMS 120

Sequential Search 120


Binary Search 122

3-3 ANALYSIS OF ALGORITHMS 127


System/Memory Performance Criteria 128
Algorithm Performance Criteria: Running Time Analysis 128
Big-O Notation 131
Common Orders of Magnitude 133

3-4 ANALYZING THE SEARCH ALGORITHMS | 135


Binary Search Running Time 135
Comparing Search Algorithms 136

3-5 MAKING ALGORITHMS GENERIC _ 139


Template Syntax 140
Runtime Template Expansion 142
Template-Based Searching Functions 144

THE CONCEPT OF RECURSION 146


Implementing Recursive Functions 148
How Recursion Works 149
Application: Multibase Output 152

3-7 PROBLEM SOLVING WITH RECURSION 155


Tower of Hanoi 155
Number Theory: The Greatest Common Divisor 159
Application of gcd - Rational Numbers 161
Evaluating Recursion 164

CHAPTER SUMMARY 168


CLASSES AND LIBRARIES INTHE CHAPTER 169
REVIEW EXERCISES 169
Answers to Review Exercises 172
xii Contents

WRITTEN EXERCISES 173


PROGRAMMING EXERCISES 179
PROGRAMMING PROJECT 182

4 The Vector Container. :.:0 0k fe ee is enn tte ae ae ereee ieee tena tee 183

4-] OVERVIEW OF STL CONTAINER CLASSES 184


4-2 TEMPLATE CLASSES 188
Constructing a Template Class 188
Declaring Template Class Objects 191

4-3 THE VECTOR CLASS 192


Introducing the Vector Container 195
The Vector API 200

4-4 VECTOR APPLICATIONS 202


Joining Vectors 203
The Insertion Sort 203

CHAPTER SUMMARY 208


CLASSES AND LIBRARIES IN THE CHAPTER = 209
REVIEW EXERCISES 209
Answers to Review Exercises 211

WRITTEN EXERCISES 211


PROGRAMMING EXERCISES 216
PROGRAMMING PROJECT 217

5 Pointers and Dynamic Memory ...........000000c


cece eeneneeeennee 219

5-1 C++ POINTERS 221


Declaring Pointer Variables 222
Assigning Values to Pointers 222
Accessing Data with Pointers 224
Arrays And Pointers 225
Pointers and Class Types 227

5-2 DYNAMIC MEMORY 229


The Memory Allocation Operator new 229
Dynamic Array Allocation 231
The Memory Deallocation Operator delete 232

5-3 CLASSES USING DYNAMIC MEMORY 234


The Class dynamicClass 234
The Destructor 236
Contents xiii

5-4 ASSIGNMENT AND INITIALIZATION 240


Assignment Issues 240
Overloading the Assignment Operator 242
The Pointer this 243
Initialization Issues 243
Creating a Copy Constructor 244

5-5 THE MINIVECTOR CLASS 247


Design of the miniVector Class 248
Reserving More Capacity 251
The miniVector Constructor, Destructor, and Assignment 253
Adding and Removing Elements from a MiniVector Object 254
Overloading the Index Operator 258

5-6 THE MATRIX CLASS 260


Describing the Matrix Container 261
Implementing Matrix Functions 265

CHAPTER SUMMARY 266


CLASSES AND LIBRARIES IN THE CHAPTER 267
REVIEW EXERCISES 268
Answers to Review Exercises 270

WRITTEN EXERCISES 271


PROGRAMMING EXERCISES 277
PROGRAMMING PROJECT 279

6 The List Container and Iterators ..........0000


cece ence eens nnnnnas 281

6-1 THE LIST CONTAINER 282


The list ADT 284
The list API 286
Application:A List Palindrome 288

6-2 ITERATORS 290


The Iterator Concept 290
Constant Iterators 294
The Sequential Search of a List 296
Application: Word Frequencies 298

6-3 GENERAL LIST INSERT AND ERASE OPERATIONS 302


Ordered Lists 305
Removing Duplicates 307
Splicing Two Lists 309

6-4 CASE STUDY: GRADUATION LISTS 310


Xiv Contents

Problem Analysis 310


Program Design 310
Program Implementation 312

CHAPTER SUMMARY 315


CLASSES AND LIBRARIES INTHE CHAPTER 316
REVIEW EXERCISES 316
Answers to Review Exercises 318

WRITTEN EXERCISES 319


PROGRAMMING EXERCISES 322
PROGRAMMING PROJECT 325

7 Stacks

7-1 THE STACK ADT 328


Multibase Output 332
Uncoupling Stack Elements 336

7-2 RECURSIVE CODE AND THE RUNTIME STACK = 339


7-3 STACK IMPLEMENTATION 342
miniStack Class Implementation 345
Implementation of the STL stack Class (Optional) 346

POSTFIX EXPRESSIONS 347


Postfix Evaluation 349
The postfixEval Class 350

CASE STUDY: INFIX EXPRESSION EVALUATION 357


Infix Expression Attributes 358
Infix to Postfix Conversion: Algorithm Design 359
Infix to Postfix Conversion: Object Design 364
infix2 Postfix Class Implementation 366

CHAPTER SUMMARY 372


CLASSES INTHE CHAPTER 373
REVIEW EXERCISES 373
Answers to Review Exercises 375

WRITTEN EXERCISES 377


PROGRAMMING EXERCISES 381
PROGRAMMING PROJECTS 382

8” Queues and Priority. QU@UOS 565g c:ésepens see see 384

8-1 THE QUEUE ADT 386

Application: Scheduling Queue 388


Contents XV

8-2 THE RADIX SORT 390


Radix Sort Algorithm 391

IMPLEMENTING THE MINIQUEUE CLASS 395


Implementation of the STL queue Class (Optional) 398

CASE STUDY: TIME-DRIVEN SIMULATION 399


Simulation Design 400
Simulation Implementation 401

ARRAY-BASED QUEUE IMPLEMENTATION 406


Designing the Bounded Queue 409
Implementing the Bounded Queue 411

PRIORITY QUEUES 412


Priority Queue ADT 413
Sorting with a Priority Queue 415
Company Support Services 417

CHAPTER SUMMARY 42i


CLASSES AND LIBRARIES INTHE CHAPTER 422
REVIEW EXERCISES 423
Answers to Review Exercises 425

WRITTEN EXERCISES 426


PROGRAMMING EXERCISES 430
PROGRAMMING PROJECT 432

ML INKOO LISCS Her oe ee ea ce ere ee eee dee et cere eine 436

9-1 LINKED LIST NODES 438


The node Class 439
Adding and Removing Nodes 442

BUILDING LINKED LISTS 443


Defining a Singly Linked List 443
Inserting at the Front of a Linked List 445
Erasing at the Front of a Linked List 447
Removing a Target Node 448

9-3 HANDLING THE BACK OF THE LIST 452


Designing a New Linked List Structure 453

9-4 IMPLEMENTING A LINKED QUEUE 455


The linkedQueue Class 456
Implementing the linkedQueue Class 457

9-5 DOUBLY LINKED LISTS 462


xvi Contents

dnode Objects 463


Circular Doubly Linked Lists 466

9-6 UPDATING A DOUBLY LINKED LIST 468


The insert() Function 468
The erase() Function 470

9-7 THE JOSEPHUS PROBLEM 474

9-8 THE MINILIST CLASS 477


miniList Class Private Members 478
miniList Class Constructors and Destructor 479
Functions Dealing with the Ends of a List 450
miniList Iterators 481
The miniList Member Functions begin() and end() 485
The General List Insert Function 485

SELECTING A SEQUENCE CONTAINER 486


CHAPTER SUMMARY 487
CLASSES AND LIBRARIES INTHE CHAPTER 489
REVIEW EXERCISES 489
Answers to Review Exercises 493

WRITTEN EXERCISES 495


PROGRAMMING EXERCISES 498
PROGRAMMING PROJECT 500

10° .Binary Trees: Gabe eR Le. Ac no cae eal doe eee eo eee 502

10-1 TREE STRUCTURES 504


Tree Terminology 505
Binary Trees 506

10-2 BINARY TREE NODES 510

Building a Binary Tree 511

10-3 BINARY TREE SCAN ALGORITHMS 514

Recursive Tree Traversals 514


Iterative Level-Order Scan 518

10-4 USING TREE SCAN ALGORITHMS | 522


Computing the Leaf Count 522
Computing the Depths of a Tree 523
Copying a Binary Tree. 526
Deleting Tree Nodes. 529
Displaying a Binary Tree. 530

10-5 BINARY SEARCH TREES 532


Contents xvii

Introducing Binary Search Trees 533


Building a Binary Search Tree 534
Locating Data in a Binary Search Tree 535
Removing a Binary Search Tree Node 536
A Binary Search Tree Class 537
Access and Update Operations 538

10-6 USING BINARY SEARCH TREES 543


Application: Removing Duplicates 543
Application: The Video Store 545

10-7 IMPLEMENTING THE stree CLASS 551


The stree Class Data Members 553
Constructor, Destructor, and Assignment 554
Update Operations 554
Complexity of Binary Search Tree Operations 563

10-8 THE STREE ITERATOR (Optional) 563


Implementing the stree Iterator 565

CHAPTER SUMMARY 569


CLASSES AND LIBRARIES INTHE CHAPTER 571
REVIEW EXERCISES 571
Answers to Review Exercises 574

WRITTEN EXERCISES 576


PROGRAMMING EXERCISES 579
PROGRAMMING PROJECTS 581

a9 eeAssociative CONTAINEMS va sarcistvcieas fladearctle ore ee DE Ts class aifncclels 586

11-1 OVERVIEW OF ASSOCIATIVE CONTAINERS — 587


Associative Container Categories 587
STL Associative Containers 590
Implementing Associative Containers 590

11-2 SET Sapo!


Displaying a Container Using Iterators 592
Set Access and Update Functions 593
A Simple Spelling Checker 596
Application: Sieve of Eratosthenes 600
Set Operations 603
Application: Updating Computer Accounts 606

11-3 MAPS 610


The Map Class Interface 610
Map Operations 613
xviii Contents

Map Index Operator 614


Case Study: Concordance 618

MULTISETS 623

Application: Computer Software Products 625

IMPLEMENTING SETS AND MAPS 628

Implementing miniSet Operations 629


The miniMap Class 630
Implementing the miniMap Class 632
The miniMap Index Operator 633

CHAPTER SUMMARY 634


CLASSES AND LIBRARIES INTHE CHAPTER 635
REVIEW EXERCISES 635
Answers to Review Exercises 637

WRITTEN EXERCISES 638


PROGRAMMING EXERCISES 641
PROGRAMMING PROJECTS 643

12 Advanced Associative StructureS .........000c


cen ecca nnccanccenees 646

12-1 HASHING 649

Using a Hash Function 650

12-2 DESIGNING HASH FUNCTIONS 651

Function Objects 652


Illustrating Function Objects 653
Integer Hash Functions 656
String Hash Functions 658
A Custom Hash Function 659

12-3 DESIGNING HASH TABLES _ 659


Linear Probe Open Addressing 660
Chaining with Separate Lists 662

12-4 THE HASH CLASS 663


Application: Using a Hash Table 666
Hash Class Implementation 669
Implementing the Hash Iterators 672
Unordered Associative Containers 676

12-5 HASH TABLE PERFORMANCE 678


Comparing Search Algorithms 680
Contents xix

12-6 2-3-4TREES 683


Inserting into a 2-3-4 Tree 686
Running Time for 2-3-4 Tree Operations 689

12-7 RED-BLACK TREES 690


Properties of a Red-Black Tree 692
Inserting Nodes in a Red-Black Tree 694
Building a Red-Black Tree 699
Search Running Time (Optional) 701
Erasing a Node in a Red-Black Tree 702

12-8 THE RBTREE CLASS 703


rbtree Class Private Section 707
Splitting a 4-node 707
The insert() Operation 709

CHAPTER SUMMARY 710


CLASSES AND LIBRARIES INTHE CHAPTER 711
REVIEW EXERCISES 712
Answers to Review Exercises 714

WRITTEN EXERCISES 716


PROGRAMMING EXERCISES =723
PROGRAMMING PROJECTS 725

13 Inheritance andAbstract Classes ........00


cece veneer eran nenennnes 727

13-1 INHERITANCE IN C++ 730


Declaring the Employee Hierarchy 731
Derived Class Constructor 734
Implementing Member Functions 736

13-2 THE GRAPHICS HIERARCHY 739


The circleShape Class 742
The Other Figure and Text Classes 744
Implementing the Polyshape Class 747

13-3 THE GRAPHICS SYSTEM = 750

13-4 SAFE VECTORS 754

13-5 ORDERED LISTS 756


OrderedList Class Implementation 758

13-6 POLYMORPHISM AND VIRTUAL FUNCTIONS = 759


Dynamic Binding 761
Application: Paying Employees with Polymorphism 763
XX Contents

Implementing Polymorphism in C++ 766


Virtual Functions And The Destructor 768

13-7 ABSTRACT CLASSES 771


An Abstract Class as an Interface 772
The Stack Interface 772

CHAPTER SUMMARY 773


CLASSES AND LIBRARIES INTHE CHAPTER 774
REVIEW EXERCISES 775
Answers to Review Exercises 778
/

WRITTEN EXERCISES 780


PROGRAMMING EXERCISES 786
PROGRAMMING PROJECT 789

14 Heaps Binary Files and Bit Sets ............


00. cee 790

14-1 ARRAY-BASED BINARY TREES 792


14-2 HEAPS 793
Inserting intoa Heap 794
Deleting from a Heap 797
The Heap Sort 801
Heapifying a Vector 805

14-3 IMPLEMENTING A PRIORITY QUEUE 808


Implementing the miniPQ Class 809

14-4 BINARY FILES 811


File Structure 811
Direct File Access 812
Input and Output for Binary Files 813
Application: Bank Account Records 814

14-5 BITSETS 818


The bitVector Class 820
Implementing the bitVector Class 823

14-6 CASE STUDY: HUFFMAN COMPRESSION = 826


Building the Huffman Tree 830
Implementation of Huffman Compression 831
Huffman Decompression 840

CHAPTER SUMMARY 843


CLASSES AND LIBRARIES INTHE CHAPTER 844
REVIEW EXERCISES 845
Answers to Review Exercises 847
Contents xxi

WRITTEN EXERCISES 849


PROGRAMMING EXERCISES 856
PROGRAMMING PROJECT 859

ome MOCUrsive AIGONEIMNS «>... rep


acake oie so a nas se bh oe alee 6 861

15-1 DIVIDE AND CONQUER ALGORITHMS 862


Building a Ruler 863
Mergesort 866
Quicksort 874
Comparison of Sorting Algorithms 884
Application: Finding Kth Largest Element 886

15-2 COMBINATORICS 889


Finding All Subsets 889
Listing Permutations 893

15-4 DYNAMIC PROGRAMMING = 897


Top-Down Dynamic Programming 898
Application: Combinations 901
Bottom-Up Dynamic Programming 903
Knapsack Problem 904

15-4 BACKTRACKING:
THE Eight-QUEENS PROBLEM 912
Problem Analysis 914
Program Design 915
Displaying a Chessboard 918
Illustrating the Eight-Queens Problem 920

CHAPTER SUMMARY 921


CLASSES AND LIBRARIES IN THE CHAPTER = 923
REVIEW EXERCISES 923
Answers to Review Exercises 925

WRITTEN EXERCISES 929


PROGRAMMING EXERCISES 932
PROGRAMMING PROJECT 936

16 Graphs

16-1 GRAPH TERMINOLOGY 941


Directed Graphs 942
Weighted Graphs 943

16-2 THE GRAPH CLASS 944


Listing the Graph API 944
Random documents with unrelated
content Scribd suggests to you:
bij het stadhuis, waar hij de remonstrantie aan den burgemeester ter
bewaring overgaf.
Een uur later verliet Lodewijk zijne vrienden, onder voorwendsel
van zich naar huis te begeven; doch het was om vol droefheid en
eenzaam door de stad te dwalen; het was om zich geheel over te
geven aan de smart, die deze schriktooneelen hem veroorzaakten.
Wanhopig en buiten zich zelven, stapte hij langzaam door de straten
en scheen zich bijna niet meer te bekreunen over hetgeen er
gebeurde. Een gevoel van schaamte belette hem, zich naar
Godmaerts woning te begeven. Zou hij zeggen, dat dit alles onder
zijne oogen geschied was, zonder dat hij iets had kunnen doen om
het te beletten?
Nu de stormers door de onmacht der regeering van straffeloosheid
verzekerd waren, gingen zij voort met alles in de stad aan stukken te
houwen. Geen beeldje lieten zij op poort of muur ongeschonden
staan. En wanneer de vreedzame burger zich tegen hun geweld
wilde verzetten, werd hij door deze booswichten wreedelijk
mishandeld en met smaadwoorden bejegend. Een oneindig getal
inwoners, die over de gevolgen dezer goddeloosheid en vernieling
verschrikten, vielen van de zijde der hervormers af.
De zon had zich van wolken ontdaan. Heerlijk en prachtig zond zij
hare stralen boven de puinhoopen, die overal op de openbare
plaatsen bijeengezameld waren. Afwisselende scharen van
ontelbare menschen stroomden met blij gejuich door de stad.
“Heil! Heil!” schreeuwden zij, alsof eene razende vreugde hen dol
had gemaakt. Bijlen, ladders, koorden en meer ander werktuig
werden door hen zegepralend rondgedragen. Wanneer zij, aldus
loopende, op den gevel van eenig gebouw nog een beeld, hoe hoog
het ook ware, bemerkten, klommen zij, door het grauw toegejuicht,
naar boven, en het beeld viel dan onder het geroep: Heil! Heil!
kletterend en verbrijzeld op den grond.
Alle winkels waren gesloten, alle kerken beroofd, de gevels van
alle huizen en openbare gebouwen geschonden. Puinhoopen van
kostelijk marmer belemmerden de kruisstraten. Het scheen, dat de
Antwerpenaren, door uitzinnigheid verblind, hunne huizen niet meer
bewonen wilden en hunne eigene stad met hardnekkigheid
vernielden.
Van deze gruweldaden geschiedden er vele op de markten en in
de straten, waar Lodewijk voorbijging. Zoo zag hij voor de St.
Jakobskerk eenen grooten hoop beelden, kruisen en vele andere
gewijde zaken in een groot vuur, dat de stormers aangestoken
hadden, tot assche verbranden.
Op den namiddag ging hij voorbij het Minderbroedersklooster,
alwaar men bezig was met plunderen. De broeders en priesters
werden met spotternij en mishandeling verjaagd en vervolgd. Dit
ziende, verschrikte Lodewijk hevig, daar hij aan pater Franciscus
dacht, dan eerst ontwaakte hij uit de radeloosheid, welke hem dien
ganschen dag tot een gevoelloos mensch gemaakt had. Hij hief het
hoofd op; een nieuw vuur blikkerde in zijne oogen, en hij wendde
zich met haastige stappen naar de Veemarkt, om pater Franciscus te
gaan vinden en hem van mishandeling te bevrijden, indien het
mogelijk ware.
Dáár komende, vond hij voor het Predikheerenklooster eenen
ontelbaren hoop beeldenstormers, die hem den doorgang beletten.
Met veel moeite, na lang drukken en stooten, geraakte hij eindelijk
binnen in het klooster, dat met booswichten en dieven was vervuld.
Hij zag hen om de zilveren kandelaren vechten, hoorde de
schandelijkste vloeken tegen de welfsels bonzen, en vond den refter
vol dronken menschen, die in onzedige liedekens en lasterende
spotternijen zich vermaakten.
Lodewijk ging dwars door deze goddeloozen en gaf geene acht op
hunne scherts; hij klom de trap op, om zich naar de cel van pater
Franciscus te begeven, en kwam weldra op het eerste verdiep, waar
hij weinig volk aantrof.
De cellen stonden open, alles was binnen deze doodstil; eenige
deuren waren aan stukken geslagen als een teeken der
balddadigheden, die men hier gepleegd had. Reeds klopte het hart
van den jongeling langzamer; zijn hoofd viel met moedeloosheid
voorover, en er was weinig hoop meer in hem, alhoewel hij nog
voortstapte door den gang, wanneer hij op eens eenige stemmen
van verre zegepralend hoorde roepen:
“Hier hebben wij nog eenen paap! Werpt hem op de straat, dien
hond!”
Lodewijk sprong vooruit, smeet drie of vier mannen van de celdeur
weg en deed eenen stap in het kleine vertrek, terwijl de verbaasde
stormers elkander met ondervragende blikken bezagen.
Pater Franciscus lag, zoo lang hij was, met het aangezicht tegen
den grond voor een kruisbeeld uitgestrekt, zijne zilveren haren
raakten van wederzijden den vloer. Van tijd tot tijd deed hij eene
beweging als om de handen hemelwaarts te heffen, en eenige
vurige woorden, die zijnen mond ontsnapten, getuigden, dat hij bezig
was met bidden.
Er ontstond in den geest van Lodewijk eene gedachte om al de
spotters, die aan de deur stonden, te dooden; hij kon dit doen, want
zij waren weinig in getal en niet gewapend; maar hij verliet welhaast
dit inzicht en wierp zich geknield nevens pater Franciscus, wiens
eene hand hij in de zijne nam. Dan sprak hij:
“Vader, hier ben ik, uw beminde zoon Lodewijk. Ik kom u redden.”
De priester rechtte zich op de knieën, bezag Lodewijk met eenen
dankbaren blik en antwoordde, terwijl hij de oogen op het Christus-
beeld gericht hield:
“Lodewijk, mijn goede zoon, ik dank u om uwe genegenheid: maar
ik zal u niet volgen. Hier, in deze cel, wil ik sterven, indien God over
mijn leven heeft beschikt. Laat mij bidden, stoor mij niet. Ik wil de
wereld verlaten met den naam des Heeren op mijnen mond. Ga
heen, denk niet aan mij.”
Lodewijk sloeg als verdwaald zijne twee armen om het hoofd des
priesters, tranen borsten uit zijne oogen, en hij snikte:
“Gij sterven! Gij, mijn goede vader! O, Geertruid zou mij
vermaledijden, indien ik u hier liet! Kom aan, de goddeloozen zullen
u mishandelen; zij zullen u vermoorden.... Het is nog tijd.... Ik zal u
verdedigen of sterven met u.”
“Lodewijk, mijn brave zoon, wees bedaard.... Zie, de kroon des
marteldoods wordt mij aangeboden; zou ik die weigeren? De Heer
heeft mij zeventig jaren gegund, ik ben niet ondankbaar.”
De jongeling plaatste zijne hand op den mond des priesters.
“Uwe woorden zijn heilig,” riep hij, “maar zij branden op mijn hart
als vuur! O, zie mijne tranen, denk aan Geertruid, aan Godmaert. Gij
alleen kunt ons troosten: uw dood zou uwen vriend Godmaert het
leven kosten; want nu durf ik het zeggen, en gij weet het, hij zou deel
hebben in den moord; uw bloed zou op zijn hoofd terugvallen,... hij
heeft uwe vijanden opgestookt.... Zult gij wreed genoeg zijn, o goede
vader, om hem die eeuwige wroeging op den hals te laden, om uw
eigen bloed over hem te werpen, en zijne dochter haren vader te
doen beschuldigen? Neen, niet waar, gij gaat met mij? Gij zijt te
edelmoedig, te goed om uwen evennaaste, uwen vriend, dit ongeluk
aan te doen!”
Gedurende deze woorden had Lodewijk den priester met geweld
doen rechtstaan, en trok nu als zinneloos aan zijne hand om hem uit
de cel te doen gaan.
“Ik zal u volgen,” sprak eindelijk de pater, “maar luister wel op
deze woorden, mijn zoon; want ik wil, dat gij ze volbrenget als een
onverbrekelijk bevel.... Misschien zal men u en mij bespotten en
mishandelen; gij zult lijden met mij, zonder gemor, zonder
tegenweer.... Wat er ook gebeuren moge, al ware het dat men mij
het leven name, zoo is mijn wil, dat gij niets doet om mij te
verdedigen of te wreken,... ik verbied het u. Zult gij daartoe moeds
genoeg hebben?”
“Ja, ja, vader, kom; ik zal alles verdragen.”
Zij gingen dan ter celdeur uit, onder de smaadwoorden dergenen,
die zich in den gang bevonden, en kwamen weldra in den refter,
waar zij door eenen hoop dronken mannen moesten gaan. Dezen
hieven een verward gejuich aan, zoodra zij den priester zagen.
“Een paap! Een paap!” werd er geschreeuwd.
In een oogenblik was pater Franciscus van het boos gespuis
omringd; allerlei lasteringen werden hem toegesnauwd: de een trok
aan de kap van zijn habijt, de ander spuwde hem bier in het
aangezicht; doch de priester ging, met de oogen nederwaarts
geslagen, langzaam voort en scheen voor al deze balddadigheden
gevoelloos; zijn habijt was aan flarden gescheurd, bier lekte van zijn
statigen schedel.
Lodewijks gelaat was schrikkelijk. Men kon er genoeg op lezen,
wat leeuwenrazernij hem verteerde, het wit zijner oogen was onder
en boven zichtbaar, zijne tanden waren op elkander gesloten, en hij
neep onwetend de handen des priesters te pletten. Nogtans hij
herinnerde zich het ontvangen bevel en deed geen teeken, dat
aanduidde, dat hij tegenstand wilde bieden.
Na vele mishandelingen geraakten zij eindelijk op de Veemarkt,
maar hier werd hun toestand nog verergerd. Eene ontelbare menigte
volgde hen; velen kwamen aan de ooren des priesters de
walgelijkste woorden, de bloedigste blasphemieën uitspreken;
anderen wierpen met slijk en vuiligheid, zoodat de zilveren haren
van pater Franciscus schandelijk met zand en modder besmeurd
werden. Reeds had Lodewijk meermalen gesmeekt en geroepen:
“O, vader, laat mij ze dooden, of mijne aderen barsten nog! Ik kan
niet.... niet meer stil blijven. Om Gods wil, laat mij u wreken en
sterven!”
Maar de priester antwoordde:
“Hoe schoon is het, Lodewijk, te lijden omdat men zijnen God
getrouw is. Denk aan de Christenhelden der oude tijden: zij werden
gemarteld, gebrand, gepletterd, maar in het midden der ziedende
olie, onder den klauw der leeuwen, kwam uit hunnen heiligen mond
geene enkele klacht, geen enkel wraakzuchtig woord; alleen staken
zij de handen op tot God, om vergiffenis voor hunne beulen te
vragen. Volgen wij hun voorbeeld, mijn zoon; misschien zullen wij
heden met de glanzende kroon der martelie voor den Heer
verschijnen!”
Bij den hoek der Zwartzusterstraat, aan de Koepoort, stond een
half opgebouwd huis, waarbij een hoop gebroken schaliën lag.
Even was Lodewijk eenige stappen daar voorbij, of hij hoorde een
stuk schalie aan zijn oor fluiten. Weldra vlogen meer schaliën naar
hen, totdat eindelijk eene daarvan tegen het naakte voorhoofd van
pater Franciscus bonsde en hem eene wijde wonde toebracht....
Lodewijk zag het bloed over zijn aangezicht stroomen....
Nu kende hij geene voorzichtigheid meer; nu vergat hij het bevel
van den pater en, zonder meer naar hem om te zien, liep hij tot
dengene, dien hij de schalie had zien werpen, en stak hem met
zooveel geweld zijnen degen door het lijf, dat deze langs den rug
uitkwam; hij zag rond om nog meer slachtoffers te vinden, maar al
de spotters hadden zich loopend tot op eenen tamelijken afstand
verwijderd.
Ondertusschen was pater Franciscus op de straat nedergevallen;
de slag der snijdende schalie had hem zoo wreedelijk getroffen, dat
hij machteloos ten gronde was gezonken.
Lodewijk naderde hem met eenen angstigen schreeuw, en, hem
half opheffende, sleepte hij hem tot tegen den muur van een huis,
waar hij hem zittend liet nederzakken. Terwijl waren de balddadigen
met meer woede genaderd en wierpen allengs meer en meer met
steenen, schaliën en vuiligheid.
Vol wanhoop, radeloos en niet wetende wat te doen om den
priester te bevrijden, ging Lodewijk vóór hem op zijne hurken zitten
en bedekte hem zoo met zijn eigen lichaam. Steenen vlogen
onophoudelijk tegen zijne leden, en menige pijnlijke gil ontsnapte
hem. Misschien ware hij lang in deze houding gebleven, maar een
gedeelte van het gespuis kwam langs eenen anderen kant staan
werpen, zoodat zij dikwijls den priester raakten. Deze, uit zijne
machteloosheid ontwaakt, wilde met geweld Lodewijk van zich doen
weggaan.
“Laat mij sterven,” sprak hij, “laat mij martelaar zijn, stel u niet
langer bloot voor mij.... ik zal voor u bidden in den hemel. Kom, mijn
brave, mijn dappere zoon, geef mij een afscheidszoen....”
Maar Lodewijk antwoordde niet; al zijne aandacht was op de
vliegende steenen gericht; al zijne zorg bestond daarin, dat hij met
zijne armen of schouders, als met een schild, het lichaam des
priesters beschutte. Dan, eindelijk werd het getal hunner vijanden
zoo groot, dat Lodewijk den priester niet meer bevrijden kon. Hij
wierp zijne twee armen om den hals van pater Franciscus en klemde
zich vast tegen zijne borst.
“Daar is de zoen, dien gij gevraagd hebt, vader,” riep hij, “maar het
is geen afscheidszoen.... Neen, sterven wij te zamen voor onzen
God. O, ik zal ook martelaar zijn.... Hoe schoon is die zekerheid!....”
Zijne stem verging, en hij verborg zijn hoofd tegen den boezem
van pater Franciscus.
Gewis hadde hij zich in deze houding laten dooden: maar een
zware steen, die tegen het lichaam van pater Franciscus bonsde,
deed eenen luiden schreeuw uit zijne borst opklimmen. Lodewijk
rukte zich los, sprong met verdwaaldheid op en blikte tusschen
eenen hagel van steenen de straten in, om te zien of er geene hulp
te bekomen was. Op eens zag hij van verre in de Koepoortstraat
eenige menschen, die hij kende, aankomen.
Eene uitdrukking van blijdschap liep over zijn gelaat, en hij
schreeuwde als met eene bovennatuurlijke stem:
“Wolfangh! Wolfangh!”
En dan bedekte hij weder den priester met zijn lichaam.
Bij den naam van Wolfangh schenen de steenen in de handen der
werpers vastgehecht te zijn; zij bestaarden elkander ondervragend
en blikten rond, of zij waarlijk den man zouden zien, die den
alomgevreesden naam van Wolfangh droeg.
Weldra kwamen er een tiental mannen bij Lodewijk: het waren
zijne vrienden, welke hij bij het stadhuis verlaten had.
“Wolfangh! Schuermans!” riep Lodewijk, terwijl hij van voor pater
Franciscus wegging, “ziet, zoo behandelen zij den beste aller
menschen, een zeventigjarigen priester!”
“Ha!” riep Wolfangh als met vreugd, “er zijn boozer menschen dan
ik! Het bloed der moordenaars gaat stroomen!”
Dan wierp hij eenen medelijdenden blik op pater Franciscus en
eenen metenden blik op degenen, die hem mishandeld hadden: hij
nam in iedere hand eenen moordpriem en trok zijn hoofd tusschen
de schouders.... er kwam een geloei uit zijne borst als uit de keel van
eenen wilden stier.... en, eenen stormram gelijk, wierp hij zich
vooruit....
Eer Schuermans en de anderen hem volgen konden, lag er reeds
menig booswicht in zijn bloed te spartelen; en na een oogenblik was
in al de aanpalende straten geen enkel mensch meer zichtbaar.
Alleenlijk hoorde men in de verte den schreeuw: “Wolfangh!
Wolfangh!” als eenen schrikverwekkenden roep aanheffen.
Dan kwam Wolfangh terug bij pater Franciscus; hij bezag met
innige verontwaardiging het edel gelaat des priesters, dat nu onder
een masker van slijk en bloed onkennelijk was gemaakt, maar, na
eene wijl als verslagen op dit tooneel gestaard te hebben, verliet hij
Lodewijk en zijne vrienden, en liep naar de deur van het
tegenoverstaande huis. Ondanks zijn kloppen en roepen werd er niet
opengedaan.
Wolfangh ontvlamde in razernij, wanhopig wrong hij den ijzeren
klopper der deur krom, doch eensklaps hernam zijn ontembaar
gemoed de overhand: een oogenblik later stond hij voor de deur met
eenen arduinen dorpel, dien hij bij het afgebroken huis gehaald had.
Slot en grendel sprongen af.... De deur viel bonzend neder.
Kort daarna kwam Wolfangh uit het huis geloopen, in de eene
hand hield hij eene kom met water en in de andere eenige linnen
doeken. Hij knielde neder bij den priester, waschte zijn hoofd en
aangezicht, en verbond zijne wonde met zooveel behendigheid, dat
men hem voor eenen heelmeester zou hebben kunnen aanzien.
Nu kon men bemerken wat schrikkelijke verandering er in pater
Franciscus was omgegaan. Het verloren bloed had hem al zijne
krachten ontnomen; zijn ingevallen gelaat was meer dan bleek, het
was aschvervig en doorschijnend; zijne lippen waren van dezelfde
kleur als de moorddadige schaliën, die rond hem lagen. En nogtans
er blonk op het aangezicht des priesters eene hemelsche uitdrukking
van onderwerping aan den wil des Heeren, een glimlach als die der
engelen.
Lodewijk zat insgelijks bij pater Franciscus geknield en hielp
Wolfangh in het verbinden der wonde. Het was meest op Lodewijk,
dat de priester zijn verflauwend oog gericht hield.
“Ho, gij zult gered zijn, goede vader,” sprak de jongeling met
teederheid, “uwe wonde zal genezen. Gij zult nog langen tijd onze
beschermengel kunnen zijn.”
“Lodewijk, mijn dierbare zoon,” zuchtte de priester, “de Heer heeft
over mij beschikt. Hij heeft mij de kroon der martelie vergund. Ik zal
sterven. Niet van de wonde, die gij verbindt; maar een steen, — de
laatste, — heeft mij de borst ingedrukt. Ik voel het in mijn lichaam:
mijne ziel doet geweld om zich los te rukken; zij wil hemelwaarts....
doch ween niet om mij; mijn lot is te schoon.”
Op deze rede antwoordde Lodewijk niets; alleenlijk staarde hij met
stijve blikken op des priesters gelaat.
“Gij bemint mij dan zeer?” sprak pater Franciscus, terwijl hij
Lodewijks hand drukte.
Die woorden deden de tranen als beken uit de oogen des
jongelings stroomen.
“O ja, gij bemint mij zeer!” herhaalde de priester. “Ik zal voor u
bidden, Lodewijk.”
Nu werd pater Franciscus door Wolfangh en Schuermans
voorzichtig opgelicht, met alle voorzorg ondersteund en langzaam
naar de Keizerstraat voortgeleid, terwijl Van Halen en de andere
vrienden van Lodewijk zich bereid hielden om den eersten spotter
het leven te benemen.
Zij kwamen eindelijk aan Godmaerts woning en werden door
Theresia binnengelaten.
X
Gloria in altissimis Deo, et in terra pax hominibus bonae
voluntatis.
Luc. Cap. ii. v. 14.
Glorie aan God in den Hooge, en vrede op de aarde aan de
menschen van goeden wil.

Godmaert en zijne dochter Geertruid zaten nevens elkaar in de


boekzaal; zij deden niets en waren in dien staat van angst en
afwachting, die al de denkingskracht des menschen op een punt
vereenigt. Sedert een half uur hadden zij nog niet gesproken, zij
schenen te slapen met opene oogen. Reeds wisten zij, hoe al de
tempels beroofd, geplunderd en ontheiligd waren, hoe men de
geestelijken verjaagd en mishandeld had. Godmaert weende in het
binnenste zijns harten over de hulp, die hij den ketters weleer
verleend had; hij dacht met ijzing aan pater Franciscus, wiens lot hij
niet kende.
Niet min was Geertruid door schrikkelijke gedachten gefolterd.
Sedert den vorigen nacht had zij Lodewijk niet gezien. Niemand had
haar over hem eenig bericht kunnen geven. Pater Franciscus was in
hare woning niet verschenen, hij die anders in alle droeve of
gevaarlijke voorvallen als een schutsengel aan hare zijde stond!
Hare angstige vrees, hare benauwde gepeinzen losten zich op in
dezen zucht, die dikwijls op hare lippen dreef: ho, zij zijn dood! zij
zijn dood!
Op eens kwam Theresia in de boekzaal geloopen, roepende als
verdwaald:
“Daar zijn ze! Daar zijn ze! Lodewijk met pater Franciscus!”
Een blijde schreeuw van Geertruid antwoordde op de
aankondiging van Theresia. De jonkvrouw stond op met de armen in
de hoogte en sprong vooruit naar de deur.
Maar toen zij de beslijkte kleederen van Lodewijk zag, toen zij
bemerkte hoe zijne handen met bloedige krabben als overdekt
waren en bovenal, wanneer zij op den priester blikte, dan werd zij
door eenen hevigen slag getroffen. Zij bleef bevend in het midden
der kamer staan, zond eenen grievenden gil door de zaal en zakte
ineen als een levenloos lichaam.
Godmaert sloeg zich de twee handen voor het aangezicht en
ontrukte zich aldus aan dit smartelijk tooneel.
De priester was bijna dood; hij werd door Wolfangh en
Schuermans veeleer gedragen en voortgesleurd dan ondersteund;
zijne verslapte beenen sleepten over den grond, ze hadden geene
kracht meer om stappen te vormen. Dan, zijn hart was nog niet
gebroken, zijn geest nog niet verdoofd.
Men plaatste hem met voorzorg in eenen armstoel; hij zonk zwaar
en beweegloos er in neder.
Ongetwijfeld had Geertruid het bewustzijn niet geheel verloren;
want zij ontwaakte van zelve en stond op. In deze omstandigheid
behield zij alleen de tegenwoordigheid van geest, die er noodig was.
Terwijl al de bijzijnde personen stilzwijgend op den priester staarden,
of met luider stemme klaagden, riep Geertruid de dienstboden van
het huis tot zich. Den een zond zij om eenen heelmeester, den ander
om een geneesheer; de overigen moesten kussens en linnen
doeken gaan halen of wijn en versterkende dranken aanbrengen.
Deze bevelen gaf zij bevend en als met de koorts bevangen. Dan,
zonder Lodewijk of iemand anders te bezien, ging zij tot den priester
en wilde hem op een goed bed doen leggen, doch hij stelde er zich
tegen en, de hand der jonkvrouw vattende, sprak hij, terwijl een
heldere glimlach op zijne aschvervige lippen speelde:
“Mijne dierbare dochter, spaar u die moeite, uw goede vader gaat
tot God. Pater Franciscus verlaat de wereld,... maar waarom zoudt
gij treuren over mij, terwijl eene ongekende blijdschap mij vervult? Ik
heb lang geleefd, mijn kind; de Heer heeft mij overladen met Zijne
gunsten, en nu, nu bewijst Hij aan mij, onwaardig mensch, de
grootste genade.... ik sterf voor Zijnen heiligen naam!”
Deze woorden deden op het gemoed der jonkvrouw eenen geheel
anderen indruk dan men hadde kunnen verwachten. In stede van in
tranen los te breken, verhelderde haar gelaat, iets, dat aan eenen
glimlach geleek, kwam hare wangen betrekken, en zij hield hare
oogen als in eene hemelsche bespiegeling op den priester
gevestigd. Die verandering kwam daaruit voort, dat zij op de bleeke
wezenstrekken van den pater iets heiligs, iets goddelijks zag blinken;
dat zijne woorden vol hemelsche vreugde haar hadden doen
gevoelen, dat zulke dood, indien hij voorvallen moest, waarlijk een
geluk en eene genade van God zou zijn. Zooverre vervoerde haar
deze geestontheffing, dat in haar hart de treurnis gansch verging en
door bedaardheid werd vervangen. Op de woorden des priesters
antwoordde zij zonder droefheid:
“O, ik versta u, goede vader. Ja, gij moogt sterven! Gij moogt de
wereld verlaten! En uwe Geertruid zal niet weenen, niet klagen; want
een schooner leven wacht u, de hemel opent zich om u te
ontvangen.”
Op dit oogenblik kwam er een geneesheer in de kamer. Zonder
iemand aan te spreken ging hij tot den priester, vatte zijne hand en
bezag hem met aandacht.
Al de tegenwoordig zijnde personen schenen eensklaps uit hunne
droefheid te verrijzen en naderden te gelijk bij den geneesheer;
Godmaert zelf deed den zetel, waarin bij zich bevond, tot bij den
priester rollen.
Na eene lange wijl van algemeenen angst vroeg Lodewijk aan den
geneesheer:
“Niet waar, meester Wallensius, er is nog hoop?”
De geneesheer antwoordde niet; maar Lodewijk zijne vraag
weldra herhaald hebbende, liet hij de hand van den priester zachtjes
nedergaan en sprak met dorre stem:
“Nog een half uur, ten langste!”
Op die akelige woorden volgde eene doodsche stilte. Godmaert,
die nu bij de zijde van pater Franciscus gezeten was, sloeg zijnen
arm om den hals van zijnen lijdenden vriend en verborg het
aangezicht op zijne borst. Tusschen eenen vloed van tranen, die
onzichtbaar uit zijne oogen op des priesters kleederen leekten,
zuchtte hij:
“O vader, vriend, herhaal mij, dat gij mij vergeeft; want de
wroeging scheurt mij den boezem. Ik weet het, een gedeelte van uw
onnoozel bloed moet op mij terugvallen, indien uwe gebeden het niet
van mijn hoofd keeren. Vergeef mij! Ik heb mede de tempels van
mijnen God geschonden; ik heb het oude geloof helpen verdelgen,
en in al de begane heiligschenderijen heb ik een schrikkelijk deel;
want ik heb mijne stadgenooten aangedreven tot de
balddadigheden, die u het leven kosten. O, vergiffenis!”
Godmaert bezag op dit oogenblik het gelaat des priesters; een
engelenglimlach blonk hem tegen, eene uitdrukking zoo treffend en
zoo zoet, dat hij de koude hand van pater Franciscus aan zijne
lippen bracht en eenen dankbaren kus er op legde.
“O, gij hebt mij vergeven!” riep hij met blijdschap.
Des priesters oogen begonnen te breken; dit was zichtbaar. Hij
antwoordde in het eerst niet op Godmaerts klachten, maar
vereenigde al de kracht, die hem overbleef, alsof hij voor de laatste
maal spreken ging. Hij wenkte dan door eene lichte beweging des
hoofds Lodewijk en Geertruid, en zeide met flauwe stem, zoodra zij
bij hem stonden:
“Nu, mijne kinderen, — nu ga ik sterven, — ik voel het!”
De wijze, waarop die woorden uitgesproken werden, liet niet den
minsten twijfel over hunne waarheid. Geertruid zonk op hare knieën
voor den priester en dwong Lodewijk, in dezelfde houding nevens
haar te zitten.
De stervende pater ging voort:
“Godmaert, ja, gij hebt gedwaald — en gezondigd; — maar uw
berouw is innig.... In den naam van den God.... wiens dienaar ik ben,
— ik vergeef het u!... Treur niet door de vrees, dat de vijanden van
ons geloof — zullen zegepralen.... De kerk van Jezus Christus is
onverdelgbaar.... uit de vervolging put zij haren luister; — uit de
bevechting hare macht.... Wolfangh, de abt van St. Bernard — zal u
zeggen wat gij doen moet.... Het kloosterleven zal uwe driften
temmen,... gij zult genade vinden bij den Heer!... Liefste kinderen,
hebt dank om uwe genegenheid tot mij. — Wankelt nooit in uwe
warme liefde tot God, in uwe vaste trouw aan het eenig zaligmakend
geloof.... Geertruid, Lodewijk, — gij zult vereenigd zijn,... wanneer de
kerk — haar rouwgewaad — zal afgeworpen hebben.... Uit den
hemel.... zal — mijne ziel — over uwe kinderen — waken. — Zijt
gelukkig!.... bemint elkan.... der.... en....”
Zijne stem verging en werd onvatbaar. Door een laatste spanning
zijner levenskrachten hief hij de rechterhand boven het hoofd der
knielende gelieven, en scheen hen biddend te zegenen. Zijne hand
viel weldra ontzenuwd neder. Hij hief nog eens de oogen
hemelwaarts, en als een licht, dat, uitgaande, nog eene heldere
sprankel van zich werpt, sprak hij met klare stem deze schoone,
deze verhevene woorden:
“Gloria in altissimis Deo.... et.... in terra pax hominibus!...”
*** END OF THE PROJECT GUTENBERG EBOOK HET
WONDERJAAR: EENE GEKKENWERELD ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright
in these works, so the Foundation (and you!) can copy and
distribute it in the United States without permission and without
paying copyright royalties. Special rules, set forth in the General
Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the


free distribution of electronic works, by using or distributing this
work (or any other work associated in any way with the phrase
“Project Gutenberg”), you agree to comply with all the terms of
the Full Project Gutenberg™ License available with this file or
online at www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand,
agree to and accept all the terms of this license and intellectual
property (trademark/copyright) agreement. If you do not agree to
abide by all the terms of this agreement, you must cease using
and return or destroy all copies of Project Gutenberg™
electronic works in your possession. If you paid a fee for
obtaining a copy of or access to a Project Gutenberg™
electronic work and you do not agree to be bound by the terms
of this agreement, you may obtain a refund from the person or
entity to whom you paid the fee as set forth in paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only


be used on or associated in any way with an electronic work by
people who agree to be bound by the terms of this agreement.
There are a few things that you can do with most Project
Gutenberg™ electronic works even without complying with the
full terms of this agreement. See paragraph 1.C below. There
are a lot of things you can do with Project Gutenberg™
electronic works if you follow the terms of this agreement and
help preserve free future access to Project Gutenberg™
electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright
law in the United States and you are located in the United
States, we do not claim a right to prevent you from copying,
distributing, performing, displaying or creating derivative works
based on the work as long as all references to Project
Gutenberg are removed. Of course, we hope that you will
support the Project Gutenberg™ mission of promoting free
access to electronic works by freely sharing Project
Gutenberg™ works in compliance with the terms of this
agreement for keeping the Project Gutenberg™ name
associated with the work. You can easily comply with the terms
of this agreement by keeping this work in the same format with
its attached full Project Gutenberg™ License when you share it
without charge with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside
the United States, check the laws of your country in addition to
the terms of this agreement before downloading, copying,
displaying, performing, distributing or creating derivative works
based on this work or any other Project Gutenberg™ work. The
Foundation makes no representations concerning the copyright
status of any work in any country other than the United States.

1.E. Unless you have removed all references to Project


Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project
Gutenberg™ work (any work on which the phrase “Project
Gutenberg” appears, or with which the phrase “Project
Gutenberg” is associated) is accessed, displayed, performed,
viewed, copied or distributed:

This eBook is for the use of anyone anywhere in the United


States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it
away or re-use it under the terms of the Project Gutenberg
License included with this eBook or online at
www.gutenberg.org. If you are not located in the United
States, you will have to check the laws of the country where
you are located before using this eBook.

1.E.2. If an individual Project Gutenberg™ electronic work is


derived from texts not protected by U.S. copyright law (does not
contain a notice indicating that it is posted with permission of the
copyright holder), the work can be copied and distributed to
anyone in the United States without paying any fees or charges.
If you are redistributing or providing access to a work with the
phrase “Project Gutenberg” associated with or appearing on the
work, you must comply either with the requirements of
paragraphs 1.E.1 through 1.E.7 or obtain permission for the use
of the work and the Project Gutenberg™ trademark as set forth
in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is


posted with the permission of the copyright holder, your use and
distribution must comply with both paragraphs 1.E.1 through
1.E.7 and any additional terms imposed by the copyright holder.
Additional terms will be linked to the Project Gutenberg™
License for all works posted with the permission of the copyright
holder found at the beginning of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files
containing a part of this work or any other work associated with
Project Gutenberg™.
1.E.5. Do not copy, display, perform, distribute or redistribute
this electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the
Project Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if
you provide access to or distribute copies of a Project
Gutenberg™ work in a format other than “Plain Vanilla ASCII” or
other format used in the official version posted on the official
Project Gutenberg™ website (www.gutenberg.org), you must, at
no additional cost, fee or expense to the user, provide a copy, a
means of exporting a copy, or a means of obtaining a copy upon
request, of the work in its original “Plain Vanilla ASCII” or other
form. Any alternate format must include the full Project
Gutenberg™ License as specified in paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™
works unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or


providing access to or distributing Project Gutenberg™
electronic works provided that:

• You pay a royalty fee of 20% of the gross profits you derive from
the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information

You might also like