Data Structures Through C in Depth 2nd Revised and Updated Edition by Srivastava, Deepali Srivastava ISBN 8176567418 9788176567411 Download
Data Structures Through C in Depth 2nd Revised and Updated Edition by Srivastava, Deepali Srivastava ISBN 8176567418 9788176567411 Download
https://ebookball.com/product/data-structures-algorithms-and-
applications-in-c-with-microsoft-compiler-2nd-edition-by-sartaj-
sahni-isbn-0929306325-9780929306322-15764/
https://ebookball.com/product/data-structures-using-c-2nd-
edition-by-malik-0324782012-978-0324782011-17222/
Data Structures and Problem Solving Using C++ 2nd edition by MALIK
ISBN 0324782012 978-0324782011
https://ebookball.com/product/data-structures-and-problem-
solving-using-c-2nd-edition-by-malik-
isbn-0324782012-978-0324782011-16350/
Data Structures and Other Objects Using C++ 2nd edition by Michael
Main ISBN 8129705826 978-8129705822
https://ebookball.com/product/data-structures-and-other-objects-
using-c-2nd-edition-by-michael-main-
isbn-8129705826-978-8129705822-16344/
Data Structures and Algorithms in C 1st edition by Adam Drozdek ASIN
B002WLXMBY
https://ebookball.com/product/data-structures-and-algorithms-
in-c-1st-edition-by-adam-drozdek-asin-b002wlxmby-25076/
Step by Step Oral Radiology 1st Edition by Ram Kumar Srivastava ISBN
B00INKKBK8 9789350250853
https://ebookball.com/product/step-by-step-oral-radiology-1st-
edition-by-ram-kumar-srivastava-
isbn-b00inkkbk8-9789350250853-6870/
https://ebookball.com/product/modern-pediatric-dentistry-1st-
edition-by-vinay-kumar-srivastava-anil-kohli-
isbn-9350251892-9789350251898-8190/
https://ebookball.com/product/data-structures-algorithms-and-
applications-in-c-1st-edition-by-adam-drozdek-
isbn-1133608426-9781133608424-17250/
https://ebookball.com/product/data-structures-and-algorithm-
analysis-in-c-4th-edition-by-mark-
weiss-013284737x-9780132847377-15292/
Table of Contents
About the Tutorial
………………………………………………………………………………………………………
i
Audience………………………………………………………………………………………………
i
Prerequisites…………………………………………………………………………………………
i Copyright and Disclaimer
………………………………………………………………………………………………………
i Compile & Execute Online
………………………………………………………………………………………………………
ii Table of Contents
………………………………………………………………………………………………………
iii
BASICS…………………………………………………………………………………
1. Overview
………………………………………………………………………………………………………
Characteristics of a Data
Structure………………………………………………………………………………………………
2
Need for Data Structure
………………………………………………………………………………………………………
2
Execution Time Cases
………………………………………………………………………………………………………
3
Basic Terminology
………………………………………………………………………………………………………
3
2. Environment Setup
………………………………………………………………………………………………………
Try it Option Online
………………………………………………………………………………………………………
4
Local Environment
Setup…………………………………………………………………………………………………
4
Installation on
UNIX/Linux…………………………………………………………………………………………
5
Installation on Mac
OS……………………………………………………………………………………………………
5
Installation on
Windows………………………………………………………………………………………………
6
ALGORITHM…………………………………………………………………………
3. Algorithms ─ Basics
………………………………………………………………………………………………………
Characteristics of an Algorithm
………………………………………………………………………………………………………
8
How to Write an Algorithm?
………………………………………………………………………………………………………
9
Algorithm
Analysis………………………………………………………………………………………………
10
Algorithm
Complexity……………………………………………………………………………………………
11
Space Complexity
………………………………………………………………………………………………………
11
Time
Complexity……………………………………………………………………………………………
11
4. Asymptotic
Analysis………………………………………………………………………………………………
Asymptotic
Notations……………………………………………………………………………………………
12
Common Asymptotic Notations
……………………………………………………………………………………………………..
15
5. Greedy Algorithms
………………………………………………………………………………………………………
Counting
Coins…………………………………………………………………………………………………
16
6. Divide &
Conquer………………………………………………………………………………………………
18
Divide/Break
………………………………………………………………………………………………………
18
Conquer/Solve………………………………………………………………………………………
18
Merge/Combine
………………………………………………………………………………………………………
19
7. Dynamic
Programming………………………………………………………………………………………
iii
DATA STRUCTURES
…………………………………………………………………………………………
8. Basic Concepts
………………………………………………………………………………………………………
Data Definition
………………………………………………………………………………………………………
22
Data
Object…………………………………………………………………………………………………
22
Data
Type…………………………………………………………………………………………………
22
Basic
Operations……………………………………………………………………………………………
23
9. Arrays
………………………………………………………………………………………………………
Array Representation
………………………………………………………………………………………………………
24
Basic
Operations……………………………………………………………………………………………
25
Insertion Operation
………………………………………………………………………………………………………
25
Array Insertions
………………………………………………………………………………………………………
27
Insertion at the Beginning of an Array
…………………………………………………………………………………………….
28
Insertion at the Given Index of an Array
…………………………………………………………………………………………. 30
Insertion After the Given Index of an Array
…………………………………………………………………………………….. 32
Insertion Before the Given Index of an
Array…………………………………………………………………………………… 34
Deletion
Operation……………………………………………………………………………………………
36
Search
Operation……………………………………………………………………………………………
37
Update
Operation……………………………………………………………………………………………
39
LINKED
LIST……………………………………………………………………………………
STACK &
QUEUE…………………………………………………………………………………
74
13. Stack
………………………………………………………………………………………………………
Stack
Representation………………………………………………………………………………………
75
Basic
Operations……………………………………………………………………………………………
76
peek()
………………………………………………………………………………………………………
76
isfull()
………………………………………………………………………………………………………
77
isempty()
………………………………………………………………………………………………………
77
Push
Operation……………………………………………………………………………………………
78
Pop Operation
………………………………………………………………………………………………………
79
Stack Program in
C………………………………………………………………………………………………………
81
14. Expression Parsing
………………………………………………………………………………………………………
Infix
Notation………………………………………………………………………………………………
84
Prefix Notation
………………………………………………………………………………………………………
84
Postfix
Notation………………………………………………………………………………………………
84
Parsing Expressions
………………………………………………………………………………………………………
85
Postfix Evaluation Algorithm
………………………………………………………………………………………………………
86
Expression Parsing Using
Stack…………………………………………………………………………………………………
86
15. Queue
………………………………………………………………………………………………………
Queue Representation
………………………………………………………………………………………………………
92
Basic
Operations……………………………………………………………………………………………
92
peek()
………………………………………………………………………………………………………
93
isfull()
………………………………………………………………………………………………………
93
isempty()
………………………………………………………………………………………………………
94
Enqueue Operation
………………………………………………………………………………………………………
95
Dequeue Operation
………………………………………………………………………………………………………
96
Queue Program in C
………………………………………………………………………………………………………
98
SEARCHING
TECHNIQUES…………………………………………………………………………
SORTING
TECHNIQUES…………………………………………………………………………
128
20. Sorting
Algorithm……………………………………………………………………………………………
In-place Sorting and Not-in-place Sorting
……………………………………………………………………………………… 129
Stable and Not Stable
Sorting………………………………………………………………………………………………
129
Adaptive and Non-Adaptive Sorting Algorithm
………………………………………………………………………………. 130
Important
Terms…………………………………………………………………………………………………
130
21. Bubble Sort Algorithm
………………………………………………………………………………………………………
How Bubble Sort Works?
………………………………………………………………………………………………………
132
Bubble Sort Program in C
………………………………………………………………………………………………………
136
22. Insertion Sort
………………………………………………………………………………………………………
How Insertion Sort Works?
………………………………………………………………………………………………………
140
Insertion Sort Program in C
………………………………………………………………………………………………………
143
23. Selection
Sort……………………………………………………………………………………………………
How Selection Sort Works?
………………………………………………………………………………………………………
147
Selection Sort Program in C
………………………………………………………………………………………………………
150
24. Merge Sort Algorithm
………………………………………………………………………………………………………
153
How Merge Sort Works?
………………………………………………………………………………………………………
153
Merge Sort Program in C
………………………………………………………………………………………………………
156
25. Shell Sort
………………………………………………………………………………………………………
How Shell Sort Works?
………………………………………………………………………………………………………
158
Shell Sort Program in C
………………………………………………………………………………………………………
162
26. Quick Sort
………………………………………………………………………………………………………
166
Partition in Quick Sort
………………………………………………………………………………………………………
166
Quick Sort Pivot Algorithm
………………………………………………………………………………………………………
166
Quick Sort Pivot Pseudocode
………………………………………………………………………………………………………
167
Quick Sort Algorithm
………………………………………………………………………………………………………
167
Quick Sort
Pseudocode……………………………………………………………………………………………
168
Quick Sort Program in C
………………………………………………………………………………………………………
168
27. Graphs
………………………………………………………………………………………………………
Graph Data Structure
………………………………………………………………………………………………………
173
Basic
Operations……………………………………………………………………………………………
175
28. Depth First
Traversal……………………………………………………………………………………………
Depth First Traversal in C
………………………………………………………………………………………………………
179
29. Breadth First
Traversal……………………………………………………………………………………………
Breadth First Traversal in C
………………………………………………………………………………………………………
186
30. Tree
………………………………………………………………………………………………………
193
Important
Terms…………………………………………………………………………………………………
193
Binary Search Tree Representation
……………………………………………………………………………………………….
194
Tree Node
………………………………………………………………………………………………………
194
BST Basic Operations
………………………………………………………………………………………………………
195
Insert Operation
………………………………………………………………………………………………………
195
Search
Operation……………………………………………………………………………………………
197
Tree Traversal in C
………………………………………………………………………………………………………
198
31. Tree Traversal
………………………………………………………………………………………………………
204
In-order Traversal
………………………………………………………………………………………………………
204
Pre-order
Traversal………………………………………………………………………………………………
205
Post-order Traversal
………………………………………………………………………………………………………
206
Tree Traversal in C
………………………………………………………………………………………………………
207
32. Binary Search Tree
………………………………………………………………………………………………………
Representation
………………………………………………………………………………………………………
213
Basic
Operations……………………………………………………………………………………………
214
Node
………………………………………………………………………………………………………
214
Search
Operation……………………………………………………………………………………………
214
Insert Operation
………………………………………………………………………………………………………
215
33. AVL Trees
………………………………………………………………………………………………………
AVL Rotations
………………………………………………………………………………………………………
218
34. Spanning Tree
………………………………………………………………………………………………………
222
General Properties of Spanning Tree
…………………………………………………………………………………………….
222
Mathematical Properties of Spanning
Tree……………………………………………………………………………………. 223
Application of Spanning Tree
………………………………………………………………………………………………………
223
Minimum Spanning Tree (MST)
…………………………………………………………………………………………………….
223
Minimum Spanning-Tree Algorithm
………………………………………………………………………………………………
223
Kruskal’s Spanning Tree
Algorithm……………………………………………………………………………………………
224
Prim’s Spanning Tree Algorithm
……………………………………………………………………………………………………
227
35.
Heaps…………………………………………………………………………………………………
Max Heap Construction Algorithm
………………………………………………………………………………………………..
232
Max Heap Deletion Algorithm
………………………………………………………………………………………………………
233
RECURSION…………………………………………………………………………
vii
36. Recursion ─
Basics…………………………………………………………………………………………………
235
Properties
………………………………………………………………………………………………………
235
Implementation………………………………………………………………………………………
236
Analysis of
Recursion……………………………………………………………………………………………
236
Time
Complexity……………………………………………………………………………………………
236
Space Complexity
………………………………………………………………………………………………………
237
37. Tower of Hanoi
………………………………………………………………………………………………………
Rules
………………………………………………………………………………………………………
238
Algorithm……………………………………………………………………………………………
242
Tower of Hanoi in C
………………………………………………………………………………………………………
245
38. Fibonacci Series
………………………………………………………………………………………………………
249
Fibonacci Iterative Algorithm
………………………………………………………………………………………………………
250
Fibonacci Interactive Program in
C………………………………………………………………………………………………..
250
Fibonacci Recursive Algorithm
……………………………………………………………………………………………………..
252
Fibonacci Recursive Program in
C………………………………………………………………………………………………….
252
viii
Basics
1. Overview Data Structures &
Algorithms
Data Structure is a systematic way to organize data in order to use it efficiently. Following
terms are the foundation terms of a data structure.
Interface − Each data structure has an interface. Interface represents the set of operations
that a data structure supports. An interface only provides the list of supported operations,
type of parameters they can accept and return type of these operations.
Implementation − Implementation provides the internal representation of a data structure.
Implementation also provides the definition of the algorithms used in the operations of the
data structure.
Characteristics ofa Data Structure
Correctness − Data structure implementation should implement its interface correctly.
Time Complexity − Running time or the execution time of operations of data structure
must be as small as possible.
Space Complexity − Memory usage of a data structure operation should be as little as
possible.
Need for Data Structure
As applications are getting complex and data rich, there are three common problems that
applications face now-a-days.
Data Search − Consider an inventory of 1 million(106) items of a store. If the application
is to search an item, it has to search an item in 1 million(106) items every time slowing
down the search. As data grows, search will become slower.
Processor Speed − Processor speed although being very high, falls limited if the data
grows to billion records.
Multiple Requests − As thousands of users can search data simultaneously on a web
server, even the fast server fails while searching the data.
To solve the above-mentioned problems, data structures come to rescue. Data can be
organized in a data structure in such a way that all items may not be required to be
searched, and the required data can be searched almost instantly.
ExecutionTimeCases
There are three cases which are usually used to compare various data structure’s execution
time in a relative manner.
Worst Case − This is the scenario where a particular data structure operation takes
maximum time it can take. If an operation’s worst case time is ƒ(n) then this operation will
not take more than ƒ(n) time, where ƒ(n) represents function of n.
Average Case − This is the scenario depicting the average execution time of an operation
of a data structure. If an operation takes ƒ(n) time in execution, then m operations will
take mƒ(n) time.
Best Case − This is the scenario depicting the least possible execution time of an
operation of a data structure. If an operation takes ƒ(n) time in execution, then the actual
operation may take time as the random number which would be maximum as ƒ(n).
Basic Terminology
Data − Data are values or set of values.
Data Item − Data item refers to single unit of values.
Group Items − Data items that are divided into sub items are called as Group Items.
Elementary Items − Data items that cannot be divided are called as Elementary Items.
Attribute and Entity − An entity is that which contains certain attributes or properties,
which may be assigned values.
Entity Set − Entities of similar attributes form an entity set.
Field − Field is a single elementary unit of information representing an attribute of an
entity.
Record − Record is a collection of field values of a given entity. File − File is a collection
of records of the entities in a given entity set.
2. Environment SetupData Structures &
Algorithms
Tryit Option Online
You really do not need to set up your own environment to start learning C programming
language. Reason is very simple, we already have set up C Programming environment
online, so that you can compile and execute all the available examples online at the same
time when you are doing your theory work. This gives you confidence in what you are
reading and to check the result with different options. Feel free to modify any example and
execute it online.
Try the following example using the Try it option available at the top right corner of the
sample code box −
#include <stdio.h>
int main(){
/* My first program in C */ printf(“Hello, World! \n”);
return 0; }
For most of the examples given in this tutorial, you will find Try it option, so just make
use of it and enjoy your learning.
LocalEnvironment Setup
If you are still willing to set up your environment for C programming language, you need
the following two tools available on your computer, (a) Text Editor and (b) The C
Compiler.
Text Editor
This will be used to type your program. Examples of few editors include Windows
Notepad, OS Edit command, Brief, Epsilon, EMACS, and vim or vi.
The name and the version of the text editor can vary on different operating systems. For
example, Notepad will be used on Windows, and vim or vi can be used on Windows as
well as Linux or UNIX.
The files you create with your editor are called source files and contain program source
code. The source files for C programs are typically named with the extension “.c“.
Before starting your programming, make sure you have one text editor in place and you
have enough experience to write a computer program, save it in a file, compile it, and
finally execute it.
The C Compiler
The source code written in the source file is the human readable source for your program.
It needs to be “compiled”, to turn into machine language so that your CPU can actually
execute the program as per the given instructions.
This C programming language compiler will be used to compile your source code into a
final executable program. We assume you have the basic knowledge about a programming
language compiler.
Most frequently used and free available compiler is GNU C/C++ compiler. Otherwise, you
can have compilers either from HP or Solaris if you have respective Operating Systems
(OS).
The following section guides you on how to install GNU C/C++ compiler on various OS.
We are mentioning C/C++ together because GNU GCC compiler works for both C and
C++ programming languages.
Installation on UNIX/Linux
If you are using Linux or UNIX, then check whether GCC is installed on your system by
entering the following command from the command line −
$ gcc -v
If you have GNU compiler installed on your machine, then it should print a message such
as the following −
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure —prefix=/usr ……. Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
If GCC is not installed, then you will have to install it yourself using the detailed
instructions available at http://gcc.gnu.org/install/
This tutorial has been written based on Linux and all the given examples have been
compiled on Cent OS flavor of Linux system.
Installation on Mac OS
If you use Mac OS X, the easiest way to obtain GCC is to download the Xcode
development environment from Apple’s website and follow the simple installation
instructions. Once you have Xcode setup, you will be able to use GNU compiler for
C/C++.
Xcode is currently available at developer.apple.com/technologies/tools/
Installation onWindows
To install GCC on Windows, you need to install MinGW. To install MinGW, go to the
MinGW homepage, www.mingw.org, and follow the link to the MinGW download page.
Download the latest version of the MinGW installation program, which should be named
MinGW<version>.exe.
While installing MinWG, at a minimum, you must install gcc-core, gcc-g++, binutils, and
the MinGW runtime, but you may wish to install more.
Add the bin subdirectory of your MinGW installation to your PATH environment
variable, so that you can specify these tools on the command line by their simple names.
When the installation is complete, you will be able to run gcc, g++, ar, ranlib, dlltool, and
several other GNU tools from the Windows command line.
Algorithm
3. Algorithms─ BasicsData Structures &
Algorithms
Algorithm is a step-by-step procedure, which defines a set of instructions to be executed in
a certain order to get the desired output. Algorithms are generally created independent of
underlying languages, i.e. an algorithm can be implemented in more than one
programming language.
From the data structure point of view, following are some important categories of
algorithms −
Search − Algorithm to search an item in a data structure.
Sort − Algorithm to sort items in a certain order.
Insert − Algorithm to insert item in a data structure.
Update − Algorithm to update an existing item in a data structure. Delete − Algorithm to
delete an existing item from a data structure.
Characteristics ofanAlgorithm
Not all procedures can be called an algorithm. An algorithm should have the following
characteristics −
Unambiguous − Algorithm should be clear and unambiguous. Each of its steps (or
phases), and their inputs/outputs should be clear and must lead to only one meaning.
Input − An algorithm should have 0 or more well-defined inputs.
Output − An algorithm should have 1 or more well-defined outputs, and should match the
desired output.
Finiteness − Algorithms must terminate after a finite number of steps.
Feasibility − Should be feasible with the available resources.
Independent − An algorithm should have step-by-step directions, which should be
independent of any programming code.
How toWriteanAlgorithm?
There are no well-defined standards for writing algorithms. Rather, it is problem and
resource dependent. Algorithms are never written to support a particular programming
code.
As we know that all programming languages share basic code constructs like loops (do,
for, while), flow-control (if-else), etc. These common constructs can be used to write an
algorithm.
We write algorithms in a step-by-step manner, but it is not always the case. Algorithm
writing is a process and is executed after the problem domain is well-defined. That is, we
should know the problem domain, for which we are designing a solution.
Example
Big Oh Notation, Ο
The notation Ο(n) is the formal way to express the upper bound of an algorithm’s running
time. It measures the worst case time complexity or the longest amount of time an
algorithm can possibly take to complete.
Omega Notation, Ω
The notation Ω(n) is the formal way to express the lower bound of an algorithm’s running
time. It measures the best case time complexity or the best amount of time an algorithm
can possibly take to complete.
Theta Notation, θ
The notation θ(n) is the formal way to express both the lower bound and the upper bound
of an algorithm’s running time. It is represented as follows −
Examples
Most networking algorithms use the greedy approach. Here is a list of few of them −
Travelling Salesman Problem
Prim’s Minimal Spanning Tree Algorithm
Kruskal’s Minimal Spanning Tree Algorithm
Dijkstra’s Minimal Spanning Tree Algorithm
Graph - Map Coloring
Graph - Vertex Cover
Knapsack Problem
Job Scheduling Problem
There are lots of similar problems that uses the greedy approach to find an optimum
solution.
6. Divide & ConquerData Structures &
Algorithms
In divide and conquer approach, the problem in hand, is divided into smaller sub-problems
and then each problem is solved independently. When we keep on dividing the
subproblems into even smaller sub-problems, we may eventually reach a stage where no
more division is possible. Those “atomic” smallest possible sub-problem (fractions) are
solved. The solution of all sub-problems is finally merged in order to obtain the solution
of an original problem.
Broadly, we can
understand divide-and-conquer approach in a three-step process.
Divide/Break
This step involves breaking the problem into smaller sub-problems. Sub-problems should
represent a part of the original problem. This step generally takes a recursive approach to
divide the problem until no sub-problem is further divisible. At this stage, sub-problems
become atomic in nature but still represent some part of the actual problem.
Conquer/Solve
This step receives a lot of smaller sub-problems to be solved. Generally, at this level, the
problems are considered ‘solved’ on their own.
Merge/Combine
When the smaller sub-problems are solved, this stage recursively combines them until
they formulate a solution of the original problem. This algorithmic approach works
recursively and conquer & merge steps works so close that they appear as one.
Examples
Comparison
In contrast to algorithms are motivated for an overall optimization of the problem. greedy
algorithms, where local optimization is addressed, dynamic
In contrast to divide and conquer algorithms, where solutions are combined to achieve an
overall solution, dynamic algorithms use the output of a smaller sub-problem and then try
to optimize a bigger sub-problem. Dynamic algorithms use memorization to remember the
output of already solved sub-problems.
Example
The following computer problems can be solved using dynamic programming approach −
Fibonacci number series
Knapsack problem
Tower of Hanoi
All pair shortest path by Floyd-Warshall
Shortest path by Dijkstra
Project scheduling
Dynamic programming can be used in both top-down and bottom-up manner. And of
course, most of the times, referring to the previous solution output is cheaper than
recomputing in terms of CPU cycles.
Data Structures
8. Basic ConceptsData Structures &
Algorithms
This chapter explains the basic terms related to data structure.
Data Definition
Data Definition defines a particular data with the following characteristics. Atomic −
Definition should define a single concept.
Traceable − Definition should be able to be mapped to some data element.
Accurate − Definition should be unambiguous. Clear and Concise − Definition should
be understandable.
Data Object
Data Object represents an object having a data.
Data Type
Data type is a way to classify various types of data such as integer, string, etc. which
determines the values that can be used with the corresponding type of data, the type of
operations that can be performed on the corresponding type of data. There are two data
types −
Built-in Data Type Derived Data Type
Those data types for which a language has built-in support are known as Built-in Data
types. For example, most of the languages provide the following built-in data types.
Integers
Boolean (true, false)
Floating (Decimal numbers) Character and Strings
Those data types which are implementation independent as they can be implemented in
one or the other way are known as derived data types. These data types are normally built
by the combination of primary or built-in data types and associated operations on them.
For example −
List
Array
Stack Queue
Basic Operations
The data in the data structures are processed by certain operations. The particular data
structure chosen largely depends on the frequency of the operation that needs to be
performed on the data structure.
Traversing
Searching
Insertion
Deletion
Sorting Merging
Other documents randomly have
different content
SALLY. And all day too.
MARTHA. Sally.
MARTHA. Are you going to take her side against me? Zack. I've
not seen anything to take anybody's side about as yet.
ZACK. That's enough, lass. Whistle's gone. I'm referee and I look
at it like this. You can't both be right.
MARTHA. She's——
ZACK. So it's a draw.
ZACK. Maybe she spoke beyond her meaning. You did, didn't you,
Martha?
SALLY. I might.
ZACK. I thought so. Haste! It's the cause of half the trouble in the
world. I never hurry. It's a principle with me.
(Virginia and Mrs. Munning enter, Virginia in light dress, with hat
and gloves.)
VIRGINIA. Oh!
MRS. MUNNING. Going in for being a Mormon, Zack?
ZACK. No, mother. I dunno how it is, cousin Virginia, but the
awkwardest things do keep happening to me. I was only reconciling
them like.
MRS. MUNNING. You haven't done the bedrooms for the night,
Sally.
ZACK. I'm the unluckiest chap alive, Virginia. I'd give the world to
have you thinking well of me, and things fall out wrong road every
time.
VIRGINIA. Thanks.
ZACK. All right, mother. I'll go. Only you know, Martha, you're
tying this knot firm. A printed card's an awful binding thing.
ZACK (swallowing, then), I'm like a cat on hot bricks till I see that
dress.
(Martha and Zack go out.)
MRS. MUNNING. Fools pay for their folly. Did you come down for
your walk with Paul?
VIRGINIA. On mine?
MRS. MUNNING. Well, truth's truth, and I'm not bound to hide it.
He's missed his proper bedtime every night with seeking roses here
to suit him. They've got to be so fine and large before they'll do for
Paul.
SALLY. Do you want these leaving in your room any longer, Miss
Virginia? They're that faded and done they'll stink the place out
soon.
MRS. MUNNING (making the best of it). I didn't know he'd given it
up here altogether.
MRS. MUNNING. Not he. But that's Paul all over. If he can't get the
best he'll have none. Look at the engagement ring he gave you.
MRS. MUNNING. Ah, but you're like myself, Jenny. You don't value
things for their appearance, but for what they mean to you.
PAUL. Well, I've settled it. I've done my business. I've got them
mother. How are you, Jenny? (Comes round and kisses her.)
PAUL. Well——
MRS. MUNNING. You needn't run away from him the moment he
comes back.
VIRGINIA. No. But I shan't be going out for a walk to-night, aunt.
I'll take my hat off. (Exit Virginia.)
MRS. MUNNING. Have you no sense at all? Couldn't you tell her
the roses were coming?
MRS. MUNNING. Not coming? And me just telling her they were all
you went to Bollington for!
PAUL. You shouldn't tell her lies. You know they weren't all I went
for.
PAUL. I didn't forget. I went to the shop and asked the price. They
wanted sixpence each. Sixpence for a single rose. Have you any idea
what a lot of roses it takes to make a decent-looking bunch?
MRS. MUNNING. Will you never get it into your thick head that it's
worth spending money to gain money?
MRS. MUNNING. That cost you nothing. What made you stop
putting flowers in her room?
PAUL. I'm not marrying a wife to stand at her heels with silly
flowers. And there isn't a woman on earth worth buying roses for at
sixpence a bloom.
PAUL. It's not. Selling flowers at that price is robbery, and I'll be
robbed by no one. Look at Joe Wrigley.
PAUL. A good cause is a better cause when it's cheap, and this is
coming out a bit expensive.
(Enter Sally.)
MRS. MUNNING. Well, you are lucky, lately, aren't you? Everything
you can think of 's going right, (Sally re-enters.)
(Exit Sally.)
WRIGLEY. So it will. Bread and cheese, Mrs. Munning. I'd not say
"no" to biscuits myself.
WRIGLEY. Eh, Paul, I didn't just notice you, but you're the man we
want. We've really come on business, but we'll get on better when
we're fortified with a bite and a sup. You know what Thomas and
Harry are, don't you?
PAUL (surrendering). You'd better get the bread and cheese out,
mother.
PAUL. Mr. Mowatt and Mr. Shoebridge are on the Executive and
they're welcome here, but you——
WRIGLEY. As you say, Harry, since last night. I'm coopted under
rule 17. Cost me a gallon of beer, but I'm co-opted. We're the
Executive and we're here on a matter of business concerned with
the work of the Society.
(Mrs. Munning and Sally enter. They put food and glasses on
table. Wrigley pours ale. They eat and drink during the ensuing. Exit
Sally.)
HARRY. You do the catering for our annual picnic, and there's a
resolution standing on our minute book, recommending our
members to employ you at times of private merrymaking. Thank
you, Mrs. Munning.
PAUL. We've done all catering for your members at contract prices
for many years.
PAUL. Break?
PAUL. I'm sure our charges to you are moderate, Mr. Mowatt.
HARRY. It's not the charges that we're here about exactly.
MRS. MUNNING. Then what is it?
HARRY. Did you go to see Mr. Abbott married the other day?
THOMAS. Did I go? I'd say so. That was a proper meller occasion.
HARRY. It was that. Mellow right through. He married his wife with
port wine, did Mr. Abbott.
THOMAS. I'm not partial to port wine myself. I favour ale at all
times and all occasions. Ale's a beverage.
HARRY. Oh yes, you do. You may not know it, but you do. You
have two sorts of catering, and our members want the best, or the
Executive will pass a resolution advising all to patronize Wilson's of
Norton.
PAUL. But you don't tell us what your way is. What is it we do
wrong?
HARRY. I'm coming to it, lad. I'm going to touch the spot. From
what we hear, your Zack's a-wedding Martha Wrigley.
PAUL. Yes?
HARRY. Well, I've nowt against it. Martha's doing unexpected well,
but if Zack's satisfied I'm sure I am. But Joe Wrigley tells me that it
doesn't stop at that, and being her father he ought to know. You
want to emigrate them off to Canada. Now where's the sense in
that?
THOMAS (rising). Yes, that's the only thing if they're going to talk
that road.
THOMAS. He mellers things. That's where it is. It's like this, Mrs.
Munning. You can eat cheese without supping ale to it, but you don't
get satisfaction. And Paul can run a wedding without Zack being
there, but it's not hearty—not what I'd call a jollification. It's stiff and
hard. No feeling in it. No mellerness.
HARRY. Zack's got a way with him. He's an artist. If the talk's
going flat, or anybody recalls a subject that's not fit to be recalled at
a wedding—an old quarrel or such like,—what does Zack do but
break a plate? and smiles that smile of his, and all's well in a
moment.
PAUL. It's gone too far for talking now. I've bought their tickets.
HARRY (by door). All right, Mrs. Munning. You're wise enough to
know a hasty temper doesn't pay in business. I could give a good
guess at your answer.
WRIGLEY. I'm not fond of guessing myself, so I'll stay here to get
it. I'm concerned twice over. As a member of the Executive and as
father of the bride to be.
WRIGLEY. No, but I thought a lot. I'd a father's feelings, and they
went too deep for words.
PAUL. Will you, Joe? You've given me two reasons why you think
you will. I'll give you two why you won't.
PAUL (shaking her off). The first's Zack isn't married yet to Martha
and the second is he isn't going to be. Their engagement's served
my purpose.
WRIGLEY. You'll eat a lot of dirt for this, Paul Munning. Banns
called and wedding fixed and people asked. (By door, then turns). Is
Zack to marry Martha?
PAUL. All right. He's not. I'll go to Bollington tomorrow and get the
money back on the tickets. But he shan't marry Martha either. I'll get
even with Joe Wrigley there.
VIRGINIA. So have I.
VIRGINIA. Yes, he was just as much your son when you neglected
him and kept him down and gave Paul all your love. And just as
much when you and Paul let Zack walk into Wrigley's trap and never
raised a hand to save him, and when you schemed to send him out
to Canada to save your pride from being hurt, and when you
changed your mind about him now—not from regret or any love for
Zack, but when you found your business would do better with him
here. Oh, I've been stupid too. I let myself be blinded by the dust
you both threw in my eyes, but I'm not blinded now and——
(She takes it off and throws it at him. Zack and Martha enter.
Martha is in a stupidly elaborate wedding-dress. The ring misses
Paul, hits Zack and falls.)
PAUL. You might have damaged that ring badly. It cost me thirty
shillings.
PAUL. What!
VIRGINIA. Is it? Do you like the man that goes with that ring?
VIRGINIA. I'm quite aware of that. Do you like Paul, Martha? Will
you take Paul Munning for your lawful wedded husband?
ZACK. I'm not very quick at thinking, Virginia, but I think you're
getting things mixed up like.
VIRGINIA. You do know. You know Joe Wrigley has the power to
ruin you unless Martha becomes Mrs. Munning. She's going to
become Mrs. Munning, but not Mrs. Zack Munning.
ZACK. But I've passed my word to Martha. We've had banns called
in church.
ZACK. Well——
VIRGINIA. That's good enough for me. Martha, it's a pity to waste
that wedding-dress. Would you rather marry Zack or Paul?
PAUL. Mother!
PAUL. But—but——
VIRGINIA. That's all right, Paul. You needn't thank me now. And if
you'd like to take Martha out for a walk, I shan't prevent you.
VIRGINIA. I've told you you're bringing him good money. You give
and he takes.
PAUL. Do I take?
VIRGINIA. She's come down on the right side of the fence at last,
Paul.
MRS. MUNNING. I'll not pretend I'm pleased, but it's a way out.
PAUL. You'd see me sacrificed like this?
MRS. MUNNING. You'll not forget that Martha's in the room, will
you?
ZACK. I didn't and I did. I've no right to be selfish, and I didn't like
the thought of it at first. I'm the wrong sort of husband for her as I
am.
ZACK. Aye. As I am I'm wrong, and I know I'm wrong. But I might
not be so wrong in Canada. I've never had a chance afore, and this
thing's grown on me a bit. I've wanted my chance, and it looked like
I was getting it. You never know what a foreign country will do for a
man, and Canada began to look a chance to me. I'd hopes of
Canada. And now you say I'm not to marry Martha, and I'll never get
a chance again.
VIRGINIA. Stay where you are, Zack. Paul and Martha are going
out together.
PAUL. That's advertising it a bit, and her in her wedding-gown and
all.
VIRGINIA. It's meant to advertise it, Paul. There's your hat. Give
her your arm now.
VIRGINIA. And I'll tell you something, Paul. You're great at talking
of the cost of things. A pleasant look costs no more than a sour one,
so see what you can do.
MRS. MUNNING. He's the cause of more trouble than he's worth,
and has been since the day he was born.
ZACK. You mustn't talk like that to mother, Jenny. You can't expect
a great soft thing like me to get same care taken of him as she took
of Paul. You don't treat carthorses like you'd treat a racer.
MRS. MUNNING. We know what's good for Zack. Some folk don't
pay for kindness.
VIRGINIA. Some never get a chance. Zack's had your method long
enough. We'll try mine now.
VIRGINIA. In a jug.
VIRGINIA. A clean start and a clean chin and Zack's first lesson in
the art of self-respect.
VIRGINIA. No, aunt. Only to shave his beard. I'm going to talk to
Zack and a lather-brush will be a handy thing to stop his mouth with
if he tries to answer back before I've done.
(Zack re-enters with steaming jug and a towel.)
MRS. MUNNING. And you think I'll stay here and watch you do it?
ZACK. You're not going to take it off me because I didn't use it,
are you?
VIRGINIA. I'm going to use it. Sit down. (She pushes him into
chair and puts towel round his neck.) Tell me why you carried this
about with you.
VIRGINIA. Well?
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookball.com