Full Data Structures & Algorithm Analysis in C++ 4th Edition (Ebook PDF) Ebook All Chapters
Full Data Structures & Algorithm Analysis in C++ 4th Edition (Ebook PDF) Ebook All Chapters
com
https://ebooksecure.com/product/data-structures-
algorithm-analysis-in-c-4th-edition-ebook-pdf/
http://ebooksecure.com/product/data-structures-algorithm-
analysis-in-c-4th-edition-ebook-pdf/
http://ebooksecure.com/product/ebook-pdf-starting-out-with-java-
from-control-structures-through-data-structures-4th-edition/
https://ebooksecure.com/download/data-structures-ebook-pdf/
https://ebooksecure.com/download/c-programming-program-design-
including-data-structures-ebook-pdf/
(eBook PDF) Data Structures and Abstractions with 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-data-structures-and-
other-objects-using-java-4th-edition/
http://ebooksecure.com/product/ebook-pdf-data-structures-and-
problem-solving-using-java-4th-edition/
https://ebooksecure.com/download/data-structures-algorithms-in-
python-ebook-pdf-2/
CO NTE NTS
Preface xv
1.7.3 Big-Five 46
Summary 46
Exercises 46
References 48
Summary 374
Exercises 375
References 376
Index 619
P R E FAC E
Purpose/Goals
The fourth edition of Data Structures and Algorithm Analysis in C++ describes data structures,
methods of organizing large amounts of data, and algorithm analysis, the estimation of the
running time of algorithms. As computers become faster and faster, the need for programs
that can handle large amounts of input becomes more acute. Paradoxically, this requires
more careful attention to efficiency, since inefficiencies in programs become most obvious
when input sizes are large. By analyzing an algorithm before it is actually coded, students
can decide if a particular solution will be feasible. For example, in this text students look at
specific problems and see how careful implementations can reduce the time constraint for
large amounts of data from centuries to less than a second. Therefore, no algorithm or data
structure is presented without an explanation of its running time. In some cases, minute
details that affect the running time of the implementation are explored.
Once a solution method is determined, a program must still be written. As computers
have become more powerful, the problems they must solve have become larger and more
complex, requiring development of more intricate programs. The goal of this text is to teach
students good programming and algorithm analysis skills simultaneously so that they can
develop such programs with the maximum amount of efficiency.
This book is suitable for either an advanced data structures course or a first-year
graduate course in algorithm analysis. Students should have some knowledge of inter-
mediate programming, including such topics as pointers, recursion, and object-based
programming, as well as some background in discrete math.
Approach
Although the material in this text is largely language-independent, programming requires
the use of a specific language. As the title implies, we have chosen C++ for this book.
C++ has become a leading systems programming language. In addition to fixing many
of the syntactic flaws of C, C++ provides direct constructs (the class and template) to
implement generic data structures as abstract data types.
The most difficult part of writing this book was deciding on the amount of C++ to
include. Use too many features of C++ and one gets an incomprehensible text; use too few
and you have little more than a C text that supports classes.
The approach we take is to present the material in an object-based approach. As such,
there is almost no use of inheritance in the text. We use class templates to describe generic
data structures. We generally avoid esoteric C++ features and use the vector and string
classes that are now part of the C++ standard. Previous editions have implemented class
templates by separating the class template interface from its implementation. Although
this is arguably the preferred approach, it exposes compiler problems that have made it xv
xvi Preface
difficult for readers to actually use the code. As a result, in this edition the online code
represents class templates as a single unit, with no separation of interface and implementa-
tion. Chapter 1 provides a review of the C++ features that are used throughout the text and
describes our approach to class templates. Appendix A describes how the class templates
could be rewritten to use separate compilation.
Complete versions of the data structures, in both C++ and Java, are available on
the Internet. We use similar coding conventions to make the parallels between the two
languages more evident.
r Chapter 4 includes implementation of the AVL tree deletion algorithm—a topic often
requested by readers.
r Chapter 5 has been extensively revised and enlarged and now contains material on
two newer algorithms: cuckoo hashing and hopscotch hashing. Additionally, a new
section on universal hashing has been added. Also new is a brief discussion of the
unordered_set and unordered_map class templates introduced in C++11.
r Chapter 6 is mostly unchanged; however, the implementation of the binary heap makes
use of move operations that were introduced in C++11.
r Chapter 7 now contains material on radix sort, and a new section on lower-bound
proofs has been added. Sorting code makes use of move operations that were
introduced in C++11.
r Chapter 8 uses the new union/find analysis by Seidel and Sharir and shows the
O( M α(M, N) ) bound instead of the weaker O( M log∗ N ) bound in prior editions.
r Chapter 12 adds material on suffix trees and suffix arrays, including the linear-time
suffix array construction algorithm by Karkkainen and Sanders (with implementation).
The sections covering deterministic skip lists and AA-trees have been removed.
r Throughout the text, the code has been updated to use C++11. Notably, this means
use of the new C++11 features, including the auto keyword, the range for loop, move
construction and assignment, and uniform initialization.
Overview
Chapter 1 contains review material on discrete math and recursion. I believe the only way
to be comfortable with recursion is to see good uses over and over. Therefore, recursion
is prevalent in this text, with examples in every chapter except Chapter 5. Chapter 1 also
includes material that serves as a review of basic C++. Included is a discussion of templates
and important constructs in C++ class design.
Chapter 2 deals with algorithm analysis. This chapter explains asymptotic analysis
and its major weaknesses. Many examples are provided, including an in-depth explana-
tion of logarithmic running time. Simple recursive programs are analyzed by intuitively
converting them into iterative programs. More complicated divide-and-conquer programs
are introduced, but some of the analysis (solving recurrence relations) is implicitly delayed
until Chapter 7, where it is performed in detail.
Preface xvii
Chapter 3 covers lists, stacks, and queues. This chapter includes a discussion of the STL
vector and list classes, including material on iterators, and it provides implementations
of a significant subset of the STL vector and list classes.
Chapter 4 covers trees, with an emphasis on search trees, including external search
trees (B-trees). The UNIX file system and expression trees are used as examples. AVL trees
and splay trees are introduced. More careful treatment of search tree implementation details
is found in Chapter 12. Additional coverage of trees, such as file compression and game
trees, is deferred until Chapter 10. Data structures for an external medium are considered
as the final topic in several chapters. Included is a discussion of the STL set and map classes,
including a significant example that illustrates the use of three separate maps to efficiently
solve a problem.
Chapter 5 discusses hash tables, including the classic algorithms such as sepa-
rate chaining and linear and quadratic probing, as well as several newer algorithms,
namely cuckoo hashing and hopscotch hashing. Universal hashing is also discussed, and
extendible hashing is covered at the end of the chapter.
Chapter 6 is about priority queues. Binary heaps are covered, and there is additional
material on some of the theoretically interesting implementations of priority queues. The
Fibonacci heap is discussed in Chapter 11, and the pairing heap is discussed in Chapter 12.
Chapter 7 covers sorting. It is very specific with respect to coding details and analysis.
All the important general-purpose sorting algorithms are covered and compared. Four
algorithms are analyzed in detail: insertion sort, Shellsort, heapsort, and quicksort. New to
this edition is radix sort and lower bound proofs for selection-related problems. External
sorting is covered at the end of the chapter.
Chapter 8 discusses the disjoint set algorithm with proof of the running time. This is a
short and specific chapter that can be skipped if Kruskal’s algorithm is not discussed.
Chapter 9 covers graph algorithms. Algorithms on graphs are interesting, not only
because they frequently occur in practice but also because their running time is so heavily
dependent on the proper use of data structures. Virtually all of the standard algorithms
are presented along with appropriate data structures, pseudocode, and analysis of running
time. To place these problems in a proper context, a short discussion on complexity theory
(including NP-completeness and undecidability) is provided.
Chapter 10 covers algorithm design by examining common problem-solving tech-
niques. This chapter is heavily fortified with examples. Pseudocode is used in these later
chapters so that the student’s appreciation of an example algorithm is not obscured by
implementation details.
Chapter 11 deals with amortized analysis. Three data structures from Chapters 4 and
6 and the Fibonacci heap, introduced in this chapter, are analyzed.
Chapter 12 covers search tree algorithms, the suffix tree and array, the k-d tree, and
the pairing heap. This chapter departs from the rest of the text by providing complete and
careful implementations for the search trees and pairing heap. The material is structured so
that the instructor can integrate sections into discussions from other chapters. For example,
the top-down red-black tree in Chapter 12 can be discussed along with AVL trees (in
Chapter 4).
Chapters 1 to 9 provide enough material for most one-semester data structures courses.
If time permits, then Chapter 10 can be covered. A graduate course on algorithm analysis
could cover chapters 7 to 11. The advanced data structures analyzed in Chapter 11 can
easily be referred to in the earlier chapters. The discussion of NP-completeness in Chapter 9
xviii Preface
is far too brief to be used in such a course. You might find it useful to use an additional
work on NP-completeness to augment this text.
Exercises
Exercises, provided at the end of each chapter, match the order in which material is pre-
sented. The last exercises may address the chapter as a whole rather than a specific section.
Difficult exercises are marked with an asterisk, and more challenging exercises have two
asterisks.
References
References are placed at the end of each chapter. Generally the references either are his-
torical, representing the original source of the material, or they represent extensions and
improvements to the results given in the text. Some references represent solutions to
exercises.
Supplements
The following supplements are available to all readers at http://cssupport.pearsoncmg.com/
Acknowledgments
Many, many people have helped me in the preparation of books in this series. Some are
listed in other versions of the book; thanks to all.
As usual, the writing process was made easier by the professionals at Pearson. I’d like
to thank my editor, Tracy Johnson, and production editor, Marilyn Lloyd. My wonderful
wife Jill deserves extra special thanks for everything she does.
Finally, I’d like to thank the numerous readers who have sent e-mail messages and
pointed out errors or inconsistencies in earlier versions. My website www.cis.fiu.edu/~weiss
will also contain updated source code (in C++ and Java), an errata list, and a link to submit
bug reports.
M.A.W.
Miami, Florida
C H A P T E R 1
Programming: A General
Overview
In this chapter, we discuss the aims and goals of this text and briefly review programming
concepts and discrete mathematics. We will . . .
r See that how a program performs for reasonably large input is just as important as its
performance on moderate amounts of input.
r Summarize the basic mathematical background needed for the rest of the book.
r Briefly review recursion.
r Summarize some important features of C++ that are used throughout the text.
1 2 3 4
1 t h i s
2 w a t s
3 o a h g
4 f g d t
because they are entirely impractical for input sizes that a third algorithm can handle in a
reasonable amount of time.
A second problem is to solve a popular word puzzle. The input consists of a two-
dimensional array of letters and a list of words. The object is to find the words in the puzzle.
These words may be horizontal, vertical, or diagonal in any direction. As an example, the
puzzle shown in Figure 1.1 contains the words this, two, fat, and that. The word this begins
at row 1, column 1, or (1,1), and extends to (1,4); two goes from (1,1) to (3,1); fat goes
from (4,1) to (2,3); and that goes from (4,4) to (1,1).
Again, there are at least two straightforward algorithms that solve the problem. For each
word in the word list, we check each ordered triple (row, column, orientation) for the pres-
ence of the word. This amounts to lots of nested for loops but is basically straightforward.
Alternatively, for each ordered quadruple (row, column, orientation, number of characters)
that doesn’t run off an end of the puzzle, we can test whether the word indicated is in the
word list. Again, this amounts to lots of nested for loops. It is possible to save some time
if the maximum number of characters in any word is known.
It is relatively easy to code up either method of solution and solve many of the real-life
puzzles commonly published in magazines. These typically have 16 rows, 16 columns, and
40 or so words. Suppose, however, we consider the variation where only the puzzle board is
given and the word list is essentially an English dictionary. Both of the solutions proposed
require considerable time to solve this problem and therefore might not be acceptable.
However, it is possible, even with a large word list, to solve the problem very quickly.
An important concept is that, in many problems, writing a working program is not
good enough. If the program is to be run on a large data set, then the running time becomes
an issue. Throughout this book we will see how to estimate the running time of a program
for large inputs and, more important, how to compare the running times of two programs
without actually coding them. We will see techniques for drastically improving the speed
of a program and for determining program bottlenecks. These techniques will enable us to
find the section of the code on which to concentrate our optimization efforts.
TABLE VII
Composition of Cereal-Coffee Infusion and Other Beverages
Fuel Value
KIND OF BEVERAGE Water Protein Fat Carbohydrates
per pound
Commercial cereal coffee (0.5
98.2 0.2 .... 1.4 30
ounce to 1 pint water)
Parched corn coffee (1.6 ounces
99.5 0.2 .... 0.5 13
to 1 pint water)
Oatmeal water (1 ounce to 1 pint
99.7 0.3 .... 0.3 11
water)
Coffee (1 ounce to 1 pint water) 98.9 0.2 .... 0.7 16
Tea (0.5 ounce to 1 pint water) 99.5 0.2 .... 0.6 15
Chocolate (0.5 ounce to 1 pint
84.5 3.8 4.7 6.0 365
milk)
Cocoa (0.5 ounce to 1 pint
97.1 0.6 0.9 1.1 65
water)
Skimmed milk 88.8 4.0 1.8 5.4 170
TABLE VIII
Legumes
Water Ash Fuel Value
FOOD Protein Fat per Carbohydrates
per per per pound
MATERIALS per cent. cent. per cent.
cent. cent. Calories
Dried
Legumes:
Navy beans 12.6 22.5 1.8 59.6 3.5 1605
Dried peas 9.5 24.6 1.0 62.0 2.9 1655
Lentils 8.4 25.7 1.0 59.2 5.7 1620
Lima beans 10.4 18.1 1.5 65.9 4.1 1625
Peanuts 9.2 25.8 38.6 24.4 2.0 2560
Peanut
2.1 29.3 46.5 17.1 5.0 2825
butter
Fresh
Legumes:
Canned
85.3 3.6 0.2 9.8 1.1 255
peas
Canned
79.5 4.0 0.3 14.6 1.6 360
lima beans
Canned
93.7 1.1 0.1 3.8 1.3 95
string beans
Canned
68.9 6.9 2.5 19.6 2.1 600
baked beans
String
89.2 2.3 0.3 7.4 0.8 195
beans
Shelled
74.6 7.0 0.5 16.9 1.0 465
peas
Like the cereals, they are seeds, yet they contain a very much
larger proportion of protein and may be substituted for meat or eggs
in a diet. In all vegetarian diets, under normal conditions, the
legumes should be used freely to replace meats.
All legumes must be thoroughly cooked and thoroughly
masticated. Because the protein in these foods is less digestible than
that in meat or eggs, particularly if they are not thoroughly
masticated, they are better adapted for the use of those who do
manual labor. Soldiers in battle, day laborers, and others whose work
calls for hard physical exercise, can digest legumes more easily than
can those whose occupation is more sedentary.
If not thoroughly masticated legumes usually produce intestinal
fermentation with consequent production of gas. For this reason
they occasion distress in those who partake of them too freely and
with insufficient preparation by cooking.
The protein of the legumes is of the same nature as the casein of
milk. It has been called vegetable casein.
Peanuts. While an underground vegetable, grown like potatoes,
peanuts resemble nuts, inasmuch as they contain so much fat. The
extracted oil is used in several commercial products.
Like other legumes, they require cooking. They are roasted
because this develops the flavor.
Because they contain a more balanced proportion of proteins,
carbohydrates, and fats, they will sustain life for some time without
other food, as they provide rebuilding material, energy, and heat.
Used alone, however, there is no counteracting acid, and it is better
to add some fruit, such as apples, or apples and dates. For this
reason lemon juice is mixed with peanut butter.
In eating peanuts it is imperative that they be masticated until
they are a pulp, otherwise they are very difficult of digestion. The
pain which many people experience after eating peanuts is probably
due to eating too large a quantity and not fully masticating them,
forgetting that they are a very rich, highly concentrated food.
The habit of eating peanuts between meals and then eating a
hearty meal is likely to overload the digestive organs.
Both peanuts and peanut butter contain over twenty-five per cent.
of protein and about thirty-nine per cent. of fat; therefore they yield
much heat and energy.
Peanuts have been made into a flour; they are also to be had in
the form of grits which are cooked like oatmeal. When nuts or
peanuts are used as an after-dinner relish the quantity of meat
should be cut down.
Their popularity is evidenced by the fact that between 4,000,000
and 5,000,000 bushels are raised annually in America.
Peanut Butter. While peanut butter contains 46.5 per cent. fat, it
contains only seventeen per cent. carbohydrates. Since sugars and
starches are protections to fat, being used for energy before the fats
are consumed, if these sugars and starches are not supplied in other
food, the fats in the peanut butter are consumed for energy. If
starches are consumed in other foods, it is clear that one who
wishes to reduce in flesh should avoid peanut butter, as well as other
fats.
Peanut butter is more easily digested than the roasted peanut,
unless the latter is chewed to a pulp. It can be made at home by
grinding the peanuts in a meat grinder, and then further mashing
with a rolling pin or a wooden potato masher. A little lemon juice
mixed with the peanut butter makes it not only more palatable, but
more easily digested. A peanut butter sandwich is quite as
nourishing as a meat sandwich.
Shelled Peas. Shelled peas were used in Europe as far back as in
the Middle Ages, and there, to-day, the dried or “split” pea is used
quite as extensively as the dried bean. In America, peas are used
almost entirely in the green stage, fresh, or canned.
As seen by Table VIII, the green, shelled pea contains seven per
cent. of protein and sixteen per cent. of sugar and starch, while the
dry or “split” pea contains over 24.5 per cent. of protein and sixty-
two per cent. of sugar and starch, the difference being in the
amount of water contained in the shelled peas. Canned peas contain
even a larger percentage of water.
A variety of the pea is now being cultivated, in which, like the
string bean, the pod is used as a food. They are sweet and delicious.
Dried peas are used in this country mostly in purées.
Beans. Baked navy beans may well be substituted on a menu for
meat, containing, as they do, 22.5 per cent. of protein. It is needless
to state that beans and lean meat or eggs should not be served at
the same meal. Beans have the advantage of being cheaper than
meat, yet, as stated above, the protein in the legumes is less easily
digested than the protein of meat or eggs. They must be thoroughly
cooked and thoroughly masticated.
There is but a small percentage of fat in dried beans; for this
reason they are usually baked with a piece of pork. They make a
very complete, perhaps the most complete food, containing nutrient
elements in about the proper proportions.
A bean biscuit is used for the sustenance of soldiers on a march; it
gives a complete food in condensed form.
In baking dried beans or peas, soft or distilled water should be
used, as the lime of hard water makes the shell almost indigestible.
Parboiling the beans for fifteen minutes in two quarts of water with a
quarter of a teaspoon of baking soda softens the shell, making them
easier to digest.
String Beans. The string bean contains very little nutrition, as
shown by Table VIII. The pod and the bean, at this unripe stage,
contain nearly ninety per cent. water. Their chief value as a food
consists in their appetizing quality to those who are fond of them,
thus stimulating the flow of gastric juice.
Like all green vegetables they stimulate the action of the kidneys.
All green vegetables are particularly valuable to those who drink little
water.
The dried Lima bean, used during the winter, may be boiled or
baked. If old, they are practically indigestible.
Kidney Beans contain much water but are more nutritious than the
string bean.
Soy Bean. In China and Japan this bean is used extensively. Being
rich in protein, used with rice it makes a well-balanced diet.
The soy bean is made into various preparations, one of the most
important being shoyo, which has been introduced into other
countries. To make it, the soy bean is cooked and mixed with
roasted wheat flour and salt; into this is put a special ferment. It is
then allowed to stand for an extended time in casks. The result is a
thick, brown liquid with a pungent, agreeable taste. It is very
nourishing.
A kind of cheese is also made by boiling the soy bean for several
hours, wrapping the hot mass in bundles of straw, and putting it in a
tightly closed cellar for twenty-four hours.
Lentils are not commonly used in this country, but they were one
of the earliest vegetables to be cultivated in Asia and the
Mediterranean countries. They are usually imported and may be
obtained in the markets. They are used like dried peas and are fully
as nourishing, but the flavor of the lentil is pronounced and they are
not so agreeable to the average person as peas or beans.
TABLE IX
Nuts
TABLE X
Milk and Milk Products
The milk of the cow is not perfectly adapted for the young child—
it is lacking in the proper proportion of sugar, and when fed to the
infant it must be modified. Mother’s milk is not only richer in sugar
than cow’s milk, but it contains about half as much casein. The calf
needs more albumin than the baby does because it grows faster.
Human milk is also richer in fat.
An all-milk diet may be followed when it is desirable to gain in
weight. Such a diet should be accompanied by exercises for the vital
organs and by deep breathing, but experiments have shown that
healthy digestive organs do their work better when a part of the
food is solid.
A milk and cream diet of about three quarts milk and one quart
cream with the addition of one to two eggs a day will keep up the
strength of one in bed, but is not sufficient for one who is active.
In order for an adult to obtain the proper quantity of
carbohydrates and fat, from an all-milk diet, it is necessary for him
to drink from four to five quarts of milk a day (sixteen to twenty
glasses). It is usually said that on an all-milk diet an active person
requires as many quarts as he is feet tall.
Young babies on mother’s milk are almost always fat, because of
the larger proportion of sugar and fat in the mother’s milk.
Reference to Table X shows that the thirteen per cent. of solids
are about equally divided between fat, sugar, and protein. The sugar
is lactose. It supplies heat to the infant before it can exercise its
muscles vigorously. The protein is casein.
There is no starch in milk. The digestive ferment, which acts on
starch, has not developed in the young babe and it cannot digest
starch.
The salts promote the growth of bone.
The fat in milk is in small emulsified droplets within a thin
albuminous sheath. When allowed to stand in a cool place it rises to
the top.
Besides casein, milk contains a certain amount of albumin—about
one-seventh of the total amount—called lactalbumin. It maintains
the fat in milk in emulsified form.
In young babes the milk is curdled in the stomach, or the casein
separated from the water and sugar, not by hydrochloric acid, but by
a ferment in the gastric juice, known as rennin. Rennin, or rennet,
from the stomachs of calves, is used in cheese and butter factories
to coagulate the casein. This with other chemicals so hardens the
casein that it is used in the manufacture of buttons.
Preserving milk. If milk could be kept free from bacteria, it would
keep sweet almost indefinitely. At the Paris Exposition, milk from
several American dairies was kept sweet for two weeks, without any
preservative except cleanliness and a temperature of about forty
degrees. The United States Bureau of Animal Industry states that
milk may be kept sweet for seven weeks without the use of
chemicals.
The importance of absolute cleanliness in the preparation and
marketing of this important article of food is being recognized both
by the producer and the consumer, and careful inspection has done
away with many abuses. In the absence of an efficient health
department, the consumer should ascertain in every case how the
milk he uses is handled at every stage before it reaches him. Care in
this regard may safeguard his family from disease and save him
many dollars.
The best method for the housewife to follow is to keep the milk
clean, cool, and away from other foods, as milk will absorb a bad
odor or flavor from any stale food or odorous vegetables, from fresh
paint, or other substances.
Milk must never be left exposed in a sick room or in a refrigerator
unless the waste pipe and the ice chamber are kept scrupulously
clean.
Milk Tests. In testing the value of milk, or the value of a cow,
butter makers and farmers gauge it by the amount of butter fat in
the milk, while the cheese maker tests the milk for the proportion of
protein (casein). The amount of butter fat depends on the feed and
water, and on the breed. If the total nutrient elements fall below
twelve per cent., it is safe to assume that the milk has been
watered.
In cheese and butter there is no sugar; it remains in the
buttermilk and the whey, both of which the farmer takes home from
the factories to fatten his hogs.
Pasteurized Milk. In pasteurizing milk the aim is to destroy as
many of the bacteria as possible without causing any chemical
changes or without changing the flavor. One can pasteurize milk at
home by placing it in an air-tight bottle, immersing the bottle to the
neck in hot water, heating the water to 167 F. for twenty minutes,
and then quickly cooling the milk to 50 F. by immersing the bottle in
cold water. The rapid cooling lessens the cooked taste. The best
dairies pasteurize the milk before it is marketed.
Sterilized Milk. Milk is sterilized to destroy all bacteria, by heating
it to 212 F. Sterilized milk remains sweet longer than pasteurized
milk, but more chemical changes are produced and the flavor is
changed, resembling that of boiled milk.
Formerly borax, boric acid, salicylic acid, formalin, and saltpeter
were used to keep the milk sweet, but this adulteration is now
forbidden by the pure-food laws.
Malted milk is a dry, soluble food product in powder form, derived
from malted barley, wheat flour (dextrin), and cow’s milk, containing
the full amount of cream.
The process of the extraction from the cereals is conducted at
elevated temperatures so as to allow the active agents (enzymes) of
the barley malt to effect the conversion of the vegetable protein and
starches. The filtered extract, containing the derivatives of the malt,
wheat, and the full-cream cow’s milk, is then evaporated to dryness
in vacuo, the temperature being controlled so as to obviate any
alteration of the natural constituents of the ingredients and so as to
preserve their full physiological values. The strictest precautions are
observed to insure the purity of the product. It contains:
Fats 8.75
Proteins 16.35
Dextrin 18.80
Lactose and Maltose 49.15
(Total Soluble Carbohydrates) 67.95
Inorganic Salts 3.86
Moisture 3.06
Malted milk is free from germs. The starches and sugars are
converted in the process of manufacture into maltose, dextrin, and
lactose. The fats are in an absorbable condition, and it contains a
high percentage of proteins derived from both the milk and the
grains, as well as a marked percentage of mineral salts. It is readily
soluble in water and is easily digested.
The hydrochloric acid of the stomach coagulates or curds milk
much as it is curded by many fruit and vegetable acids, such as
those in lemons or tomatoes. Thus the milk forms into curds
immediately on entering the stomach, the casein being at once
precipitated by the rennin. This is the chief reason why it should be
drunk slowly, otherwise too large curds will form, causing distress
from pressure.
FOOTNOTES:
[4] Charles D. Woods, Dr. Sc., in Cereal Breakfast Foods.
CHAPTER IV
BEVERAGES