Where Can Buy (Ebook PDF) Data Structures and Problem Solving Using Java 4th Edition Ebook With Cheap Price
Where Can Buy (Ebook PDF) Data Structures and Problem Solving Using Java 4th Edition Ebook With Cheap Price
com
https://ebooksecure.com/product/ebook-pdf-data-
structures-and-problem-solving-using-java-4th-
edition/
http://ebooksecure.com/product/ebook-pdf-data-structures-and-
other-objects-using-java-4th-edition/
http://ebooksecure.com/product/ebook-pdf-data-structures-and-
abstractions-with-java-4th-edition/
http://ebooksecure.com/product/ebook-pdf-data-structures-and-
abstractions-with-java-4th-global-edition/
http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-data-structures-4th-edition/
(eBook PDF) Java: An Introduction to Problem Solving
and Programming 7th Edition
http://ebooksecure.com/product/ebook-pdf-java-an-introduction-to-
problem-solving-and-programming-7th-edition/
http://ebooksecure.com/product/ebook-pdf-java-an-introduction-to-
problem-solving-and-programming-8th-edition/
http://ebooksecure.com/product/data-structures-and-abstractions-
with-java-5th-edition-ebook-pdf/
http://ebooksecure.com/product/ebook-pdf-introduction-to-
programming-with-java-a-problem-solving-approach-3rd-edition/
http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-data-structures-3rd-edition/
summary of changes in the fourth edition
a unique approach
My basic premise is that software development tools in all languages come with
large libraries, and many data structures are part of these libraries. I envision an
eventual shift in emphasis of data structures courses from implementation to use. In this
book I take a unique approach by separating the data structures into their specification
and subsequent implementation and taking advantage of an already existing data
structures library, the Java Collections API.
A subset of the Collections API suitable for most applications is discussed in a
single chapter (Chapter 6) in Part Two. Part Two also covers basic analysis techniques,
recursion, and sorting. Part Three contains a host of applications that use the
Collections API’s data structures. Implementation of the Collections API is not shown
until Part Four, once the data structures have already been used. Because the
Collections API is part of Java, students can design large projects early on, using
existing software components.
Despite the central use of the Collections API in this text, it is neither a book on the
Collections API nor a primer on implementing the Collections API specifically; it
remains a book that emphasizes data structures and basic problem-solving techniques.
Of course, the general techniques used in the design of data structures are applicable to
the implementation of the Collections API, so several chapters in Part Four include
Collections API implementations. However, instructors can choose the simpler
implementations in Part Four that do not discuss the Collections API protocol. Chapter
6, which presents the Collections API, is essential to understanding the code in Part
Three. I attempted to use only the basic parts of the Collections API.
Many instructors will prefer a more traditional approach in which each data structure
is defined, implemented, and then used. Because there is no dependency between
material in Parts Three and Four, a traditional course can easily be taught from this
book.
prerequisites
java
This textbook presents material using the Java programming language. Java is a
language that is often examined in comparison with C++. Java offers many benefits, and
programmers often view Java as a safer, more portable, and easier-to-use language than
C++.
The use of Java requires that some decisions be made when writing a textbook. Some
of the decisions made are as follows:
1. The minimum required compiler is Java 5. Please make sure you are using a
compiler that is Java 5-compatible.
2. GUIs are not emphasized. Although GUIs are a nice feature in Java, they seem
to be an implementation detail rather than a core Data Structures topic. We do
not use Swing in the text, but because many instructors may prefer to do so, a
brief introduction to Swing is provided in Appendix B.
3. Applets are not emphasized. Applets use GUIs. Further, the focus of the course
is on data structures, rather than language features. Instructors who would like
to discuss applets will need to supplement this text with a Java reference.
4. Inner classes are used. Inner classes are used primarily in the implementation
of the Collections API, and can be avoided by instructors who prefer to do so.
5. The concept of a pointer is discussed when reference variables are
introduced. Java does not have a pointer type. Instead, it has a reference type.
However, pointers have traditionally been an important Data Structures topic
that needs to be introduced. I illustrate the concept of pointers in other
languages when discussing reference variables.
6. Threads are not discussed. Some members of the CS community argue that
multithreaded computing should become a core topic in the introductory
programming sequence. Although it is possible that this will happen in the
future, few introductory programming courses discuss this difficult topic.
7. Some Java 5 features are not used. Including:
Static imports, not used because in my opinion it actually makes the code harder
to read.
Enumerated types, not used because there were few places to declare public
enumerated types that would be usable by clients. In the few possible places, it
did not seem to help the code’s readability.
text organization
Part One consists of four chapters that describe the basics of Java used throughout the
text. Chapter 1 describes primitive types and illustrates how to write basic programs in
Java. Chapter 2 discusses reference types and illustrates the general concept of a
pointer—even though Java does not have pointers—so that students learn this important
Data Structures topic. Several of the basic reference types (strings, arrays, files, and
Scanners) are illustrated, and the use of exceptions is discussed. Chapter 3 continues
this discussion by describing how a class is implemented. Chapter 4 illustrates the use
of inheritance in designing hierarchies (including exception classes and I/O) and
generic components. Material on design patterns, including the wrapper, adapter, and
decorator patterns can be found in Part One.
Part Two focuses on the basic algorithms and building blocks. In Chapter 5 a
complete discussion of time complexity and Big-Oh notation is provided. Binary search
is also discussed and analyzed. Chapter 6 is crucial because it covers the Collections
API and argues intuitively what the running time of the supported operations should be
for each data structure. (The implementation of these data structures, in both
Collections API-style and a simplified version, is not provided until Part Four). This
chapter also introduces the iterator pattern as well as nested, local, and anonymous
classes. Inner classes are deferred until Part Four, where they are discussed as an
implementation technique. Chapter 7 describes recursion by first introducing the notion
of proof by induction. It also discusses divide-and-conquer, dynamic programming, and
backtracking. A section describes several recursive numerical algorithms that are used
to implement the RSA cryptosystem. For many students, the material in the second half
of Chapter 7 is more suitable for a follow-up course. Chapter 8 describes, codes, and
analyzes several basic sorting algorithms, including the insertion sort, Shellsort,
mergesort, and quicksort, as well as indirect sorting. It also proves the classic lower
bound for sorting and discusses the related problems of selection. Finally, Chapter 9 is
a short chapter that discusses random numbers, including their generation and use in
randomized algorithms.
Part Three provides several case studies, and each chapter is organized around a
general theme. Chapter 10 illustrates several important techniques by examining games.
Chapter 11 discusses the use of stacks in computer languages by examining an algorithm
to check for balanced symbols and the classic operator precedence parsing algorithm.
Complete implementations with code are provided for both algorithms. Chapter 12
discusses the basic utilities of file compression and cross-reference generation, and
provides a complete implementation of both. Chapter 13 broadly examines simulation
by looking at one problem that can be viewed as a simulation and then at the more
classic event-driven simulation. Finally, Chapter 14 illustrates how data structures are
used to implement several shortest path algorithms efficiently for graphs.
Part Four presents the data structure implementations. Chapter 15 discusses inner
classes as an implementation technique and illustrates their use in the ArrayList
implementation. In the remaining chapters of Part Four, implementations that use simple
protocols (insert, find, remove variations) are provided. In some cases, Collections
API implementations that tend to use more complicated Java syntax (in addition to
being complex because of their large set of required operations) are presented. Some
mathematics is used in this part, especially in Chapters 19–21, and can be skipped at
the discretion of the instructor. Chapter 16 provides implementations for both stacks
and queues. First these data structures are implemented using an expanding array, then
they are implemented using linked lists. The Collections API versions are discussed at
the end of the chapter. General linked lists are described in Chapter 17. Singly linked
lists are illustrated with a simple protocol, and the more complex Collections API
version that uses doubly linked lists is provided at the end of the chapter. Chapter 18
describes trees and illustrates the basic traversal schemes. Chapter 19 is a detailed
chapter that provides several implementations of binary search trees. Initially, the basic
binary search tree is shown, and then a binary search tree that supports order statistics
is derived. AVL trees are discussed but not implemented, but the more practical red–
black trees and AA-trees are implemented. Then the Collections API TreeSet and
TreeMap are implemented. Finally, the B-tree is examined. Chapter 20 discusses hash
tables and implements the quadratic probing scheme as part of HashSet and HashMap,
after examination of a simpler alternative. Chapter 21 describes the binary heap and
examines heapsort and external sorting.
Part Five contains material suitable for use in a more advanced course or for general
reference. The algorithms are accessible even at the first-year level. However, for
completeness, sophisticated mathematical analyses that are almost certainly beyond the
reach of a first-year student were included. Chapter 22 describes the splay tree, which
is a binary search tree that seems to perform extremely well in practice and is
competitive with the binary heap in some applications that require priority queues.
Chapter 23 describes priority queues that support merging operations and provides an
implementation of the pairing heap. Finally, Chapter 24 examines the classic disjoint
set data structure.
The appendices contain additional Java reference material. Appendix A lists the
operators and their precedence. Appendix B has material on Swing, and Appendix C
describes the bitwise operators used in Chapter 12.
chapter dependencies
Generally speaking, most chapters are independent of each other. However, the
following are some of the notable dependencies.
Part One (Tour of Java): The first four chapters should be covered in their
entirety in sequence first, prior to continuing on to the rest of the text.
Chapter 5 (Algorithm Analysis): This chapter should be covered prior to
Chapters 6 and 8. Recursion (Chapter 7) can be covered prior to this chapter,
but the instructor will have to gloss over some details about avoiding inefficient
recursion.
Chapter 6 (The Collections API): This chapter can be covered prior to or in
conjunction with material in Part Three or Four.
Chapter 7 (Recursion): The material in Sections 7.1–7.3 should be covered
prior to discussing recursive sorting algorithms, trees, the Tic-Tac-Toe case
study, and shortest-path algorithms. Material such as the RSA cryptosystem,
dynamic programming, and backtracking (unless Tic-Tac-Toe is discussed) is
otherwise optional.
Chapter 8 (Sorting Algorithms): This chapter should follow Chapters 5 and 7.
However, it is possible to cover Shellsort without Chapters 5 and 7. Shellsort
is not recursive (hence there is no need for Chapter 7), and a rigorous analysis
of its running time is too complex and is not covered in the book (hence there is
little need for Chapter 5).
Chapter 15 (Inner Classes and Implementations of ArrayLists): This material
should precede the discussion of the Collections API implementations.
Chapters 16 and 17 (Stacks and Queues/Linked Lists): These chapters may be
covered in either order. However, I prefer to cover Chapter 16 first because I
believe that it presents a simpler example of linked lists.
Chapters 18 and 19 (Trees/Binary Search Trees): These chapters can be
covered in either order or simultaneously.
separate entities
mathematics
I have attempted to provide mathematical rigor for use in Data Structures courses that
emphasize theory and for follow-up courses that require more analysis. However, this
material stands out from the main text in the form of separate theorems and, in some
cases, separate sections or subsections. Thus it can be skipped by instructors in courses
that deemphasize theory.
In all cases, the proof of a theorem is not necessary to the understanding of the
theorem’s meaning. This is another illustration of the separation of an interface (the
theorem statement) from its implementation (the proof). Some inherently mathematical
material, such as Sections 7.4 (Numerical Applications of Recursion), can be skipped
without affecting comprehension of the rest of the chapter.
course organization
A crucial issue in teaching the course is deciding how the materials in Parts Two–Four
are to be used. The material in Part One should be covered in depth, and the student
should write one or two programs that illustrate the design, implementation, testing of
classes and generic classes, and perhaps object-oriented design, using inheritance.
Chapter 5 discusses Big-Oh notation. An exercise in which the student writes a short
program and compares the running time with an analysis can be given to test
comprehension.
In the separation approach, the key concept of Chapter 6 is that different data
structures support different access schemes with different efficiency. Any case study
(except the Tic-Tac-Toe example that uses recursion) can be used to illustrate the
applications of the data structures. In this way, the student can see the data structure and
how it is used but not how it is efficiently implemented. This is truly a separation.
Viewing things this way will greatly enhance the ability of students to think abstractly.
Students can also provide simple implementations of some of the Collections API
components (some suggestions are given in the exercises in Chapter 6) and see the
difference between efficient data structure implementations in the existing Collections
API and inefficient data structure implementations that they will write. Students can
also be asked to extend the case study, but again, they are not required to know any of
the details of the data structures.
Efficient implementation of the data structures can be discussed afterward, and
recursion can be introduced whenever the instructor feels it is appropriate, provided it
is prior to binary search trees. The details of sorting can be discussed at any time after
recursion. At this point, the course can continue by using the same case studies and
experimenting with modifications to the implementations of the data structures. For
instance, the student can experiment with various forms of balanced binary search trees.
Instructors who opt for a more traditional approach can simply discuss a case study
in Part Three after discussing a data structure implementation in Part Four. Again, the
book’s chapters are designed to be as independent of each other as possible.
exercises
Exercises come in various flavors; I have provided four varieties. The basic In Short
exercise asks a simple question or requires hand-drawn simulations of an algorithm
described in the text. The In Theory section asks questions that either require
mathematical analysis or asks for theoretically interesting solutions to problems. The In
Practice section contains simple programming questions, including questions about
syntax or particularly tricky lines of code. Finally, the Programming Projects section
contains ideas for extended assignments.
pedagogical features
The Key Concepts section lists important terms along with definitions and page
references.
The Common Errors section at the end of each chapter provides a list of
commonly made errors.
References for further reading are provided at the end of most chapters.
supplements
A variety of supplemental materials are available for this text. The following resources
are available at http://www.aw.com/cssupport for all readers of this textbook:
Source code files from the book. (The On the Internet section at the end of each
chapter lists the filenames for the chapter’s code.)
In addition, the following supplements are available to qualified instructors. To access
them, visit http://www.pearsonhighered.com/cs and search our catalog by title for Data
Structures and Problem Solving Using Java. Once on the catalog page for this book,
select the link to Instructor Resources.
PowerPoint slides of all figures in the book.
Instructor’s Guide that illustrates several approaches to the material. It includes
samples of test questions, assignments, and syllabi. Answers to select exercises
are also provided.
acknowledgments
Many, many people have helped me in the preparation of this book. Many have already
been acknowledged in the prior edition and the related C++ version. Others, too
numerous to list, have sent e-mail messages and pointed out errors or inconsistencies in
explanations that I have tried to fix in this edition.
For this edition I would like to thank my editor Michael Hirsch, editorial assistant
Stephanie Sellinger, senior production supervisor Marilyn Lloyd, and project manager
Rebecca Lazure and her team at Laserwords. Thanks also go to Allison Michael and
Erin Davis in marketing and Elena Sidorova and Suzanne Heiser of Night & Day
Design for a terrific cover.
Some of the material in this text is adapted from my textbook Efficient C
Programming: A Practical Approach (Prentice Hall, 1995) and is used with
permission of the publisher. I have included end-of-chapter references where
appropriate.
My World Wide Web page, , will contain
updated source code, an errata list, and a link for receiving bug reports.
M. A. W.
Miami, Florida
contents
1.2.2
1.3.2 constants
1.5.7 and
1.6 methods
1.6.1 overloading of method names
summary
key concepts
common errors
on the internet
exercises
references
2.3 strings
2.3.1 basics of string manipulation
2.4 arrays
2.4.1 declaration, assignment, and methods
2.4.3
summary
key concepts
common errors
on the internet
exercises
references
3.3 javadoc
THE ESCAPE
Nanette and I sat quiet. The figure of Josefa had disappeared from
the corridor. Turber had gone out hastily with a command to Nanette
and me.
"Don't move. Stay in your chairs."
We were alone in the control room, except for the Indian, Bluntnose.
He had ignored us throughout the trip, but he was not ignoring us
now. He stood a few feet away, like a statue in the gloom, watching
us closely. A tomahawk was hung at his belt; a modern automatic
revolver was in his hand.
The aero, inside and out, was in confusion. The tramp of feet; a
babble of voices. Through the windows I could see a dark forest
glade with the yellow light of a camp fire near by. And the glint of a
starlit river, with a shadowy cove quite near us.
I whispered: "The Indian is watching us, Nanette—we mustn't move."
Turber presently came in. A short sword was strapped to his belt; and
a revolver in a holster.
"Good news," he said. "It's coming! They're bringing it by water from
up the river."
The Indian grunted.
"It will take several hours, Bluntnose. But the first of it is almost here
—a canoe is in sight."
He was jubilant. He dashed away, but I called to him.
"Dr. Turber."
He came back.
"Let us go out and see it," I said. "What is it? Your treasure?"
"Yes." He hesitated. "Nanette—if only you could see this added
wealth coming to us now!"
"I'd like to go out," she said. I could feel her fingers tighten on my
arm.
Turber spoke to Bluntnose. The fellow Jonas appeared in the corridor.
He called excitedly: "The first canoe is very nearly landing, Wolf
Turber. There's another in sight. Are you coming?"
Turber hastened away. I urged the Indian: "Let us go out and see it."
"Come, then." He shoved us before him, down the corridor to the
main side doorway. I did not see Josefa.
"Careful, Nanette." I helped her down the small ladder. Bluntnose
was very watchful. He said:
"Sit over there. Don't move."
He sat us by the bole of a great tree some twenty feet from the
vehicle. In the glow of the firelight I saw the dark shadowy forms of
Indians moving about. A group of them were waiting down by the
shore. A fat Dutchman was with them, round as a barrel in his
leather jerkin and pantaloons. He jabbered excitedly in English.
"Did I not tell you, Wolf Turber? I've done it—such a treasure! Come
here, vrouw!" His wife stood beside a tree. "This is the great Turber,
woman. Do we go with you now, Wolf Turber?"
"Yes."
"Glad I am to get out of here. The blow-hard Stuyvesant meets his
match tomorrow. Did you know that? The English are coming."
"Yes," said Turber. He turned toward the shore. The Dutchman
followed him. "Our boat is here. Unload your things, woman. Carry
them up—get them in this airship. We're going to a better world,
good wife."
His voice was lost as they moved away.
Nanette sat beside me, silent, motionless. But I knew that she was
alert—waiting for what I might command her to do.
I whispered: "Not yet. The Indian is here, close. I don't see Josefa.
But I'm watching for a chance to get away."
The pressure of her hand answered me. Brave little Nanette!
The Indian seemed never to take his eyes from us. The automatic
was ready in his hand; I could not have made a move.
Where was Josefa? If she could distract this Indian even for a
moment—
Five minutes passed. Ten minutes. My mind strayed to Alan. Was he
dead? In reality, Alan and the tower were at this instant materializing
in the forest no more than a mile away.
Out in the river a long Indian war canoe appeared. It was heading for
the cove. Its paddles gleamed rhythmically in the starlight. It landed.
I saw that it was piled with moldy chests. The Indians began carrying
them to the aero. The Dutchman and his wife struggled back and
forth with their household effects.
Turber and Jonas were giving commands. Then I saw Josefa! She
was down by the shore. She spoke to Turber. I saw him reach into a
broken chest and haul forth a huge jeweled bangle. He tossed it to
her and moved away.
She came toward us. I did not move. She stood by Bluntnose.
"Look what the Wolf gave me. What jewels we have now. This
pleases me more than all Turber's platinum and golden wealth."
She was standing in front of Bluntnose, blocking his sight of us. He
pushed her away.
I cursed myself. Had my chance come and gone? But it had only
been an instant. He would have shot at Nanette and me before we
had gone ten feet.
I caught the woman's significant glance. She was trying to make my
opportunity. Nanette felt me stir. Nanette knew that the moment had
almost come.
Josefa said: "Turber wants you, Bluntnose—there is a chest that fell
in the water. These fool Indians—not Mohican like you, are they,
Bluntnose? Not one of them will dive, even for jewels."
The Indian hesitated. Turber fortunately was not within sight. There
was an Indian wading in the shallows of the shore.
"These captives—"
"He told me to watch them. Dios! If I could not shoot better than
you! Give me that ugly thing."
She took the automatic; took it gently from him. Her face was
upraised; her smiling lips were mockingly alluring.
He yielded the weapon; and suddenly leaned down and kissed her
with a rough caress.
"You bad Indian! Never let Wolf Turber see you do that! Go now—
show him you fear no river when it has jewels in it. I'll keep the
prisoners safe."
She covered us with the automatic; she stood ten feet away. "Hurry
back, Bluntnose."
He went. She stood tense. She met my glance, but did not answer it.
Her gaze roved the near-by glade. There was a moment when no one
near by was observing us. She gestured with the automatic.
"Go! Run south toward the village. I'll fire presently—and I'll tell them
you went north. Run fast!"
"Nanette—run!" I lifted her up; held her hand; we slid into the
underbrush and ran.
CHAPTER XII
As well as he could, Alan tried to keep in mind the lay of this strange
land. Strangely dark and sinister forest. Yet Alan was born right here
in this same Space! He had lived here all his life. This, in 1945, was
Central Park. The Turber aero lay over by Riverside Drive. But how
different now!
Out in the Hudson River a large canoe was coming south. It seemed
heading in the direction of the Turber aero.
They went back to the lower tower room. Through the windows here
the black woods crowded like a wall.
"Tell them, Lentz, to watch closely. At any sign of trouble, tell them to
take the tower and escape."
Lentz told them. They nodded solemnly. Lea gave Alan her hand.
Again, as always, its touch thrilled him. She said:
"Good-by, Alan. Good—luck."
"Good-by, Lea."
In the woods, Lentz and Alan crept through the underbrush.
"You lead," Alan whispered. He felt safer with Lentz in front of him.
But he told himself that was foolish; Lentz seemed perfectly friendly.
"Quiet, we make no noise. In these woods, it seems, savages are
everywhere."
It was rough, heavy traveling. The underbrush was thick; there were
fallen trees, tiny streams occasionally; deep, solemn glens, thick with
leafy mold and huge ferns. And the solid wall of trees. Wild brier,
dogwood, sumach, and white birch occasionally, gleaming, ghostlike,
in the gloom.
Silent, sinister recesses. At every crackling twig beneath their tread,
Alan's heart leaped. The Indians of this forest could glide through it
soundlessly. Alan felt a dozen times that he and Lentz were being
stalked.
"Where are we, Lentz? Wait a minute."
They crossed perilously on the top of a fallen tree, which spanned a
deep ravine. Lentz waited at its end for Alan to come. Lentz
whispered: "Let me help you."
There was an instant when it flashed to Alan that Lentz might push
him off. Alan drew back.
"Move on—I'll get down."
They crouched at the end of the tree. It occurred to Alan that he had
been foolish to bring Lentz. His mistrust of the fellow was growing.
But it seemed an unreasonable mistrust.
"Where are we, Lentz?"
"Halfway there, I think. Or more. We should see the light of the camp
fire soon."
They started again. Presently Lentz stopped. Alan could see him, ten
feet ahead, standing against a tree-trunk.
"What is it?" Alan advanced until they stood together. Lentz pointed.
Two eyes gleamed in the brush ahead. Alan impulsively raised his
weapon, but Lentz checked him.
"Quiet! Some animal."
CHAPTER XIII
THE TRAITOR
CHAPTER XIV
They slammed the oak door upon us. We lay in the darkness. In the
next room when most of them departed, we fancied some half a
dozen had been left to guard us. We heard their voices; the light
from their candles showed through the chinks of the interior log wall.
We whispered to each other. We were worried about Nanette but she
was unhurt.
"Yes, all right, Alan. But I'm so frightened."
"At least it's better than being in Turber's hands, Nanette." If we
could escape now, there might still be time to get back to the tower.
If not—well, we might be stranded here to live out our lives in New
Amsterdam. But at least, these Dutchmen probably would not murder
us.
But could we escape? It seemed impossible. We lay in the darkness
on the log floor, bound securely.
An interval went by. There was a stir outside. Thumping. More voices.
The door opened. Peter Stuyvesant came in. He stood, balanced
upon his wooden leg and regarded us in the light of a candle held
aloft. Eyed us as though we were some monstrosities; poked at us
with the peg of his leg; and turned and stumped back to the
doorway.
And in the doorway then, I saw Wolf Turber standing! Turber, in his
black cloak, his white shirt gleaming beneath it. His sardonic gaze
upon us.
The thing struck us with such surprise and horror that neither Alan
nor I moved, or spoke. The door was left open. Turber and
Stuyvesant sat at a table. The candlelight showed them plainly. There
seemed now only one other man in the room—some trusted patroon,
no doubt.
Turber spoke this contemporary Dutch. They conversed. We could
hear them, but could not understand a word.
What they said, never will be disclosed. Unrecorded history, this! A
furtive, hidden incident—who was there ever to record it? Did
Stuyvesant think Turber some magician? Or just a rich adventurer?
A bargain was struck. From a bag Turber produced jewels. And coins,
and chunks of gold. He piled them on the table in the candlelight. He
and Stuyvesant drank from their goblets to seal the bargain.
Stuyvesant gathered up the treasure and stuffed it in the pockets of
his great-coat.
A bargain was struck with Peter Stuyvesant.
Turber came in to us. He bent down. "If you speak or move, I'll have
them kill you now." He chuckled. "Say good-by to Nanette—quite a
little fortune I paid for her, but she's worth it."
He lifted up Nanette. He untied her thongs. She cried out—just once.
"Don't be frightened, child. I won't hurt you."
Alan and I were straining at our bonds.
"Quiet, you fools!" We had helplessly tried to menace him with
words.
He led Nanette from the room. The door closed upon us. We could
hear Stuyvesant leaving. And then Turber taking Nanette away. His
voice reached us:
"Don't be frightened, child."
There was silence.
Another interval passed. There were again guards in the room
outside. I whispered: "Alan, it must be nearly dawn."
We had no idea. There were spaces in the outer log walls where the
morticed filling had fallen away. But only blackness showed.
In the adjoining room there was candlelight, and the drowsy voices
of the Dutchmen.
"Alan, what's that?"
A thud had sounded; something striking the roof over our heads.
Then another. Off in the woods there was a shout. A war-whoop!
And other thuds. A rain of arrows falling upon the roof and the side
of the little fort.
An Indian attack! The Dutchmen in the adjoining room made short
work of getting out of this isolated building. They did not come in
even to look at us. They decamped into the woods, running for the
village stockade.
We were left alone. Helpless!
The rain of arrows kept on. We could hear the Indians shouting, but
they did not advance.
The dawn was coming. Or was it the dawn? A red glow showing
through the log walls. Red and yellow. I smelled smoke! Alan
coughed with a sudden choking.
The little log blockhouse was being bombarded with flaming arrows.
It was on fire, filling up with smoke which already was choking us!
CHAPTER XV
THE RESCUE
Lea and San—after Alan and Lentz left them—kept watch in the
tower. They talked together in their own language.
"How long do you think, brother, that they will be gone?"
"Until dawn perhaps. We can only hope for the best. Alan is
resourceful—he got you away from Turber, Lea."
They could not guess what Alan and Lentz would do to rescue
Nanette and me. They discussed Lentz. A fellow of their own Time-
world. Their father had always put great trust in him. But Lentz had
known Turber there. Was he a traitor now? A fellow in the pay of
Turber? There had been several little things which Alan had brought
to light—things to make them suspicious of Lentz. And they knew
Alan did not trust him.
The hours passed. The forest was a black wall of silence about the
tower. Lea often stood in the doorway, staring out. Small, graceful
figure in flowing blue robe and golden hair. We had seen her on the
television like that—our first sight of her.
San would not be still. As always when the tower was at rest in a
strange Time-world, he constantly paced the room; peering
alternately from each of its windows; always within a few feet of the
tower controls so that at any hostile sign outside, in a second or two
the tower would speed away.
Time dragged by. Lea grew increasingly worried. Alan should be
back by now.
"If he would have taken me," she said. "You remember, San, when
we were here once before? There was an old chief—Silver Water,
you remember? I could have got him then to help me try for Turber
in one of Turber's passings. But you would not let me."
"You are over-bold, Lea." San shrugged. "I am helpless—always here
with the tower."
"I could, tonight, have enlisted a band of these Indians," she said.
"They worshiped me for a goddess—the 'God of Magic,' old Silver
Water called the tower."
The Indians had been prostrate before the tower, that other night,
and from its steps Lea had talked to them, while San watched at the
controls.
"That was one thing," he said. "Safe enough. But to have you leave
—tonight—off in these woods to try and find your friendly, gullible
Indians—too dangerous, Lea. Alan knew it. He was right."
She presently mounted the tower, while San remained alert below.
From the top she could see the Turber camp fire. And the Indian fire
to the southeast.
Silence. And then, far away to the south where the pale-face city
held the southern tip of the island, Lea thought she heard a shot.
Then another. But they were very faint.
Dark spread of silent woods! What was going on out there? The
shots were Alan firing at Lentz when we discovered his treachery.
But Lea could not know that.
The Hudson River shone in the starlight. Lea saw a huge Indian
canoe moving south toward the glow of light which marked the
location of the Turber aero. It was one of the canoes bringing in the
Turber treasure. But that, too, she did not know.
She went down again and joined San. They waited through what
seemed another interminable period.
"We must leave at dawn," said San.
But Lea shook her head. "We will not leave until we know Turber has
left—and Alan has failed."
And there was the chance that Alan and Lentz would be in the
woods, and return at last, unsuccessful.
"We cannot abandon them, San."
They both suddenly felt that the venture was doomed to failure.
"San! Did you hear that?"
They were at one of the windows. A cautious call had come from the
woods. A low hail.
"Lea!" It came again. "Lea! Don't start the tower! I'm coming."
Lentz's voice! They both recognized it. Lea went to the doorway. San
was alert at the controls with his gaze on her.
"Wait, San." She gestured. "Wait! I see him."
Lentz appeared from a thicket near by.
"Lea?"
"Yes, Lentz. Where is Alan?"
"I'm coming in. Don't start the tower." He approached. "Disaster,
Lea. We could do nothing. Alan was killed by Turber."
Her heart went cold. She stood on the steps. Lentz was alone. He
came up the steps, into the tower room. There was blood on his
right hand; one of its fingers was mangled. He held out the
wounded hand.
He said: "Don't start us yet, San. I want to talk to you. I've been
hurt—Turber shot me."
They stood with him in the middle of the room. For that instant the
tower controls were neglected. Lentz held out his wounded hand for
inspection. His other hand was behind him. It came up over his
head. He struck with a dagger at San.
A swift blow, but Lea was quicker. She shoved at him. The blow
missed, and San was upon him. And Lea leaped at him also, fighting
desperately. They bore him down. His wounded hand was a
handicap. The dagger was in his awkward left hand. San fought for
it as they rolled on the floor with Lea bending over them.
A brief struggle. San twisted and got the dagger, stabbed with it.
Lentz gave a shuddering cry and relaxed.
San climbed to his feet, white and shaken. Lea was trembling.
"Got him, Lea. Accursed traitor."
San's first thought was the controls. Lea stopped him.
"Wait! How do we know Alan is dead? A lie, perhaps, what Lentz told
us."
They went to the windows. There was no one in sight. A groan from
Lentz brought them back. He lay, gruesome on the floor, with the
knife in him and a red stain widening. But he was not dead. Lea bent
over him.
"Lea—I want to—tell you the truth."
He died in a moment, but before he died he gasped out the truth of
what had happened. He had lurked in the woods and seen us
captured by the Dutchmen. Had followed us—himself like an Indian,
for he was skilled in woodcraft. He had been here before with
Turber, laying plans to get the treasure. He knew these woods well.
He had seen us finally thrown into the fort with half a dozen
Dutchmen left to guard us. Then he had gone to Turber. Had told
what happened. Turber had set off to see Stuyvesant. Lentz had
come back to the tower. If he had killed San, he would perhaps have
killed Lea also, and escaped with the tower.
But now he lay dead. He gasped his last words of the confession.
Blood gushed from his lungs.
Lea turned away. There was barely time for her to tell San what
Lentz had said—they were standing at the doorway—when they
became aware of dark figures in the shadowed glade near at hand!
Again San would have flung the tower into Time. But again Lea
stopped him.
Figures of savages were out there—not menacing, but prostrate
upon the ground at the edge of the near-by thickets. It was so dark
by the forest edge—the figures were dark and motionless—that Lea
and San might not have seen them had not there come a low wail.
Mournful cry! A prostrate savage placating this magic god of the
forest. This strange tower, with a god and goddess in its doorway
standing in this glade which the redskins well knew to be usually
empty of such a vision.
Lea's thoughts were swift. Alan and I and Nanette were held by the
Dutch in an isolated fort some two or three miles to the south. Lea
could control these Indians. She had already proved her power upon
one of their chieftains.
She murmured her plans to San. It was hardly a minute from the
time they had first seen the prostrate figures.
San stood alert, watching. Lea advanced to the top of the tower
steps. She called in the Indian dialect: "Rise up, children of the
forest. I would not hurt you. I bring you only good."
She descended the steps slowly. San called anxiously:
"Careful, Lea!"
"Yes, San. Stand on your feet, men of the forest."
Slowly she advanced upon them. Watchful.
They rose at the gesture of her upraised arms. Some ten of them—
young braves prowling here in the forest, attracted by the tower's
dim light.
They trembled before Lea. Savages of the year 1664! Well might
they have thought her a goddess; white, fairy-like creature with
flowing blue robe and dangling golden tresses—and the Time-
traveling tower behind her.
"I bring you commands," she said, "from the Spirit Land where your
fathers hunt now in peace and happiness. You have a chieftain—a
man of much power here in these woods. He is called Silver Water—
name like a woman, but he is a man very old, and wise, and very
good."
One of the Indians stepped forward. "I know him. His lodge—off
there by the water of the dawn—not far."
He pointed to the southeast.
"I will go with you," she said. "Lead me. Be not afraid, young
braves."
"Lea, come back!" San called.
She turned. "I'll be careful. No danger, San. Watch out for Turber."
She followed the Indians into the dark shadows of the forest.
"But, Goddess of the Sun, I have buried the hatchet with the pale-
face intruders here." The old sachem was troubled. He sat by his
camp fire with his braves about him. The East River flowed near by.
The wigwams of his village stood along it—dark-coned shapes in the
gloom. The curious women and children hovered in the background.
Lea stood straight and commanding with her back against a tree.
The firelight painted her. She held her arms upraised.
"I am at peace here," the old Indian repeated. "The pale-face chief
with the one live leg sat here at my fire and smoked the pipe of
peace with me. And you would command me to break my oath—"
"No," she said. "There is one little fort, this side of the city. You know
it."
"I know it," he said.
"And it is in your woods."
He nodded gravely. "Yes. They press always farther, these pale-face
intruders. But I want no fighting. The white men are very good at
killing—and I have heard this day that more of the pale-face ships
are coming. One of my braves was in the city today. He came back
drunk with firewater, but he had the tale."
"Have they ever broken their word with you?" she demanded.
"Yes—many times."
"Well, it is not my wish you should start any fighting. Merely frighten
away the guards of the little fort."
"My braves," he said, "run wild when deeds of violence start. We
want no killing."
"No," she agreed. "I will be careful of that."
Lea at last convinced him. There were two gods, and another
goddess like herself, held in that little fort by the Dutch. A score of
braves and herself could go and frighten away the Dutchmen and
rescue them. If they were left there—if evil came to them—then evil
would fall upon all this forest.
He listened. Abruptly he stood up and flung his gray braids with a
toss of his head; and wound his vivid blanket around him. Dignified,
venerable figure. But he was afraid of Lea. Her curse upon these, his
forests—his people—
"It shall be as you command. You shall have thirty of my braves. In
a moment they will be ready."
The little blockhouse stood in the trees on a rise of ground. Lea, with
her Indians about her, moved silently through the underbrush. It
was her intention to creep up and surprise the Dutch guards, and to
overcome them without arousing the near-by village. The door of
the blockhouse faced the other way. The building stood black and
silent. Were we in there? Was any one in there? She did not know.
Without warning, taking Lea wholly by surprise, at the edge of the
thickets the savages knelt abruptly and shot their arrows.
"Why—" Momentarily she lost her poise.
The young brave beside her drew her back behind a tree-trunk. It
startled her. But she saw that he was reverential.
"We will go no farther," he said. "Drive them away."
The lust of battle abruptly swept over the young Indians. With the
launching of the first arrow they seemed to forget Lea. The forest
rang with their shouts. They spread out; creeping forward. And then
with flint and steel bartered from the pale-face, they set their arrows
into flame. And launched them.
The young leader standing by Lea murmured: "They are running!
See them go—off there—running for their village. The fort will burn."
It was already burning. Dry walls and roof; the flaming arrows struck
and caught the bark. Spots of spreading flame.
"Wait!" commanded Lea. "Enough!" She stopped them at last. The
fort was blazing. The Dutchmen had decamped.
She added: "Come!" But the young Indians feared to advance;
suddenly fearful of what they had done; the great pale-face village
could pour out many wrathful men upon occasion.
"Then stay here," said Lea hurriedly.
She left them. She dashed across the short intervening space. She
ran around the corner of the burning building. A prayer was in her
heart that Alan and Nanette and I were inside and still safe.
She came to the door. It stood open. The room was full of smoke.
Its candles gleamed dully; but she saw that the room was empty.
And saw a door across it.
She rushed in. The smoke choked her. She held her breath.
The door between the rooms was not fastened. She flung it open.
Saw, in the yellow glare of the burning roof—saw Alan and me lying
bound and helpless.
We called: "Lea!"
She came—saw the ropes binding us. She dashed back to get a knife
lying on the table by the candles. We rolled so that she might cut
our ropes. We were all gasping in the smoke. She helped us up; we
could barely stand at first, but with her help we staggered out into
the blessed cool air of the night.
The building was blazing all over its side and roof. To the south, by
the city stockade, the Dutchmen were shouting, but none of them
advanced. We ran back to Lea's waiting Indians. There seemed still a
chance that Turber's aero might still be there. The Indians led us to
the spot. But it was gone, and the camp was deserted.
Then we crossed swiftly east to the tower. It was daylight when we
left the braves, prostrate before the tower as it melted into a
phantom and vanished.
We were safe—all but Nanette. Of what use to me, this safety?
Nanette, to me of all the world most dear, was gone. And this time I
had a premonition that she was lost to me forever.
CHAPTER XVI