Data Structures And Algorithm Analysis In C++ 4th Edition Weiss Solutions Manual pdf download
Data Structures And Algorithm Analysis In C++ 4th Edition Weiss Solutions Manual pdf download
https://testbankdeal.com/product/data-structures-and-algorithm-
analysis-in-c-4th-edition-weiss-solutions-manual/
https://testbankdeal.com/product/data-structures-and-algorithm-
analysis-in-java-3rd-edition-weiss-solutions-manual/
https://testbankdeal.com/product/data-structures-and-algorithms-
in-c-2nd-edition-goodrich-solutions-manual/
https://testbankdeal.com/product/introduction-to-c-programming-and-
data-structures-4th-edition-liang-solutions-manual/
https://testbankdeal.com/product/pharmacology-for-nurses-a-
pathophysiologic-approach-5th-edition-adams-test-bank/
Business Communication Developing Leaders for a Networked
World 1st Edition Cardon Solutions Manual
https://testbankdeal.com/product/business-communication-developing-
leaders-for-a-networked-world-1st-edition-cardon-solutions-manual/
https://testbankdeal.com/product/financial-accounting-the-impact-on-
decision-makers-8th-edition-porter-solutions-manual/
https://testbankdeal.com/product/byrd-and-chens-canadian-tax-
principles-2018-2019-1st-edition-byrd-test-bank/
https://testbankdeal.com/product/contemporary-accounting-a-strategic-
approach-for-users-9th-edition-hancock-solutions-manual/
https://testbankdeal.com/product/microeconomics-2nd-edition-bernheim-
solutions-manual/
Molecular Biology of The Cell 5th edition Alberts Test
Bank
https://testbankdeal.com/product/molecular-biology-of-the-cell-5th-
edition-alberts-test-bank/
CHAPTER 6
6.2
6.3 The result of three deleteMins, starting with both of the heaps in Exercise 6.2, is as follows:
6.4 (a) 4N
(b) O(N2)
(c) O(N4.1)
(d) O(2N)
6.5
/**
* Insert item x, allowing duplicates.
*/
void insert( const Comparable & x )
{
if( currentSize == array.size( ) - 1 )
array.resize( array.size( ) * 2 );
// Percolate up
int hole = ++currentSize;
for( ; hole > 1 && x < array[ hole / 2 ]; hole /= 2 )
array[ hole ] = array[ hole / 2 ];
array[0] = array[ hole ] = x;
}
6.6 225. To see this, start with i = 1 and position at the root. Follow the path toward the last node, doubling i
when taking a left child, and doubling i and adding one when taking a right child.
6.7 (a) We show that H(N), which is the sum of the heights of nodes in a complete binary tree of N nodes, is
N − b(N), where b(N) is the number of ones in the binary representation of N. Observe that for N = 0 and
N = 1, the claim is true. Assume that it is true for values of k up to and including N − 1. Suppose the left and
right subtrees have L and R nodes, respectively. Since the root has height log N , we have
H (N ) = log N + H (L) + H (R )
= log N + L − b(L) + R − b(R)
= N − 1 + ( Log N − b(L) − b(R) )
The second line follows from the inductive hypothesis, and the third follows because L + R = N − 1. Now the
last node in the tree is in either the left subtree or the right subtree. If it is in the left subtree, then the right
subtree is a perfect tree, and b(R) = log N − 1 . Further, the binary representation of N and L are identical,
with the exception that the leading 10 in N becomes 1 in L. (For instance, if N = 37 = 100101, L = 10101.) It
is clear that the second digit of N must be zero if the last node is in the left subtree. Thus in this case,
H(N) = N − b(N)
If the last node is in the right subtree, then b(L) = log N . The binary representation of R is identical to
N, except that the leading 1 is not present. (For instance, if N = 27 = 101011, L = 01011.) Thus
H(N) = N − b(N)
(b) Run a single-elimination tournament among eight elements. This requires seven comparisons and
The eighth comparison is between b and c. If c is less than b, then b is made a child of c. Otherwise, both
(c) A recursive strategy is used. Assume that N = 2k. A binomial tree is built for the N elements as in part (b).
The largest subtree of the root is then recursively converted into a binary heap of 2 k − 1 elements. The last
element in the heap (which is the only one on an extra level) is then inserted into the binomial queue
consisting of the remaining binomial trees, thus forming another binomial tree of 2 k − 1 elements. At that
point, the root has a subtree that is a heap of 2 k − 1 − 1 elements and another subtree that is a binomial tree of
2k−1 elements. Recursively convert that subtree into a heap; now the whole structure is a binary heap. The
running time for N = 2k satisfies T(N) = 2T(N/2) + log N. The base case is T(8) = 8.
6.8 a) Since each element in a min heap has children whose elements are greater than the value in the
element itself, the maximum element has no children and is a leaf.
c) Since the maximum element can be any leaf (the position of a node is determined entirely by the
value of its parent and children), all leaves must be examined to find the maximum value in a min
heap.
6.9 Let D1, D2, . . . ,Dk be random variables representing the depth of the smallest, second smallest, and kth
smallest elements, respectively. We are interested in calculating E(Dk). In what follows, we assume that the
heap size N is one less than a power of two (that is, the bottom level is completely filled) but sufficiently
large so that terms bounded by O(1/N) are negligible. Without loss of generality, we may assume that the kth
smallest element is in the left subheap of the root. Let pj, k be the probability that this element is the jth
Lemma.
k −1
For k > 1, E (Dk ) = p j ,k (E (D j ) + 1) .
j =1
Proof.
An element that is at depth d in the left subheap is at depth d + 1 in the entire subheap. Since
Since by assumption, the bottom level of the heap is full, each of second, third, . . . , k − 1th smallest
elements are in the left subheap with probability of 0.5. (Technically, the probability should be half − 1/(N −
1) of being in the right subheap and half + 1/(N − 1) of being in the left, since we have already placed the kth
smallest in the right. Recall that we have assumed that terms of size O(1/N) can be ignored.) Thus
1 k − 2
p j ,k = pk − j ,k = k −2
2 j −1
Theorem.
E(Dk) log k.
Proof.
The proof is by induction. The theorem clearly holds for k = 1 and k = 2. We then show that it holds for
arbitrary k > 2 on the assumption that it holds for all smaller k. Now, by the inductive hypothesis, for any
1 j k − 1,
Thus
Thus
k −1
E ( Dk ) 1 + p j , k log ( k 2)
j =1
k −1
1 + log ( k 2) p j , k
j =1
1 + log ( k 2)
log k
(b) Works for leftist and skew heaps. The running time is O(Kd) for d-heaps.
6.12 Simulations show that the linear time algorithm is the faster, not only on worst-case inputs, but also on
random data.
6.13 (a) If the heap is organized as a (min) heap, then starting at the hole at the root, find a path down to a leaf by
taking the minimum child. The requires roughly log N comparisons. To find the correct place where to move
the hole, perform a binary search on the log N elements. This takes O(log log N) comparisons.
(b) Find a path of minimum children, stopping after log N − log log N levels. At this point, it is easy to
determine if the hole should be placed above or below the stopping point. If it goes below, then continue
finding the path, but perform the binary search on only the last log log N elements on the path, for a total of
log N + log log log N comparisons. Otherwise, perform a binary search on the first log N − log log N
elements. The binary search takes at most log log N comparisons, and the path finding took only log N − log
log N, so the total in this case is log N. So the worst case is the first case.
(c) The bound can be improved to log N + log*N + O(1), where log*N is the inverse Ackerman function (see
6.14 The parent is at position (i + d − 2) d . The children are in positions (i − 1)d + 2, . . . , id + 1.
(d) d = max(2, M/N). (See the related discussion at the end of Section 11.4.)
6.16 Starting from the second most signficant digit in i, and going toward the least significant digit, branch left for
6.17 (a) Place negative infinity as a root with the two heaps as subtrees. Then do a deleteMin.
(b) Place negative infinity as a root with the larger heap as the left subheap, and the smaller heap as the right
(c) SKETCH: Split the larger subheap into smaller heaps as follows: on the left-most path, remove two
subheaps of height r − 1, then one of height r, r + 1, and so one, until l − 2. Then merge the trees, going
smaller to higher, using the results of parts (a) and (b), with the extra nodes on the left path substituting for
6.18 a. The minimum element will be the root. The maximum element will be one of the two children of the root.
b. Place the new element in the last open position (as in a regular heap). Now compare it to its parent. Now if
the new element was inserted into a max(min) row and was less (greater) than its parent. Then swap it with
its parent and now it need only be compared to other min elements and bubbled up min elements. If it is
greater (less) than its parent it need only be compared to other max elements bubbled up using the max
elements.
c) For a min deletion, remove the root . Let the last element in the heap be x . If the root has no children, then
x becomes the root. If find m the minimum child or grandchild of the root. If k Y m, then x becomes the
root. Other wise if m is the child of the root the m becomes the root and x is inserted in place of m. Finally if
m is the grandchild of the root, then m is moved to the root and if p is the parent of m, then if x > is p, then p
and x are interchanged.
d) yes. (see Atkinson et al., Min-Max Heaps and Generalized Priority Queues, Programming Techniques
and Data Structures, Vol 29, No. 10, pp. 996 - 1000, 1986.)
6.20
6.21 This theorem is true, and the proof is very much along the same lines as Exercise 4.20.
6.22 If elements are inserted in decreasing order, a leftist heap consisting of a chain of left children is formed. This
6.23 (a) If a decreaseKey is performed on a node that is very deep (very left), the time to percolate up would be
prohibitive. Thus the obvious solution doesn’t work. However, we can still do the operation efficiently by a
combination of remove and insert. To remove an arbitrary node x in the heap, replace x by the merge of its
left and right subheaps. This might create an imbalance for nodes on the path from x’s parent to the root that
would need to be fixed by a child swap. However, it is easy to show that at most logN nodes can be affected,
6.24 Lazy deletion in leftist heaps is discussed in the paper by Cheriton and Tarjan [10]. The general idea is that if
the root is marked deleted, then a preorder traversal of the heap is formed, and the frontier of marked nodes is
removed, leaving a collection of heaps. These can be merged two at a time by placing all the heaps on a
queue, removing two, merging them, and placing the result at the end of the queue, terminating when only
6.25 (a) The standard way to do this is to divide the work into passes. A new pass begins when the first element
reappears in a heap that is dequeued. The first pass takes roughly 2*1*(N/2) time units because there are N/2
merges of trees with one node each on the right path. The next pass takes 2*2*(N/4) time units because of the
roughly N/4 merges of trees with no more than two nodes on the right path. The third pass takes 2*3*(N/8)
6.27
6.28 This claim is also true, and the proof is similar in spirit to Exercise 4.20 or 6.21.
6.29 Yes. All the single operation estimates in Exercise 6.25 become amortized instead of worst-case, but by the
definition of amortized analysis, the sum of these estimates is a worst-case bound for the sequence.
6.30 Clearly the claim is true for k = 1. Suppose it is true for all values i = 1, 2, . . . , k. A Bk + 1 tree is formed by
attaching a Bk tree to the root of a Bk tree. Thus by induction, it contains a B0 through Bk − 1 tree, as well as the
6.31 Proof is by induction. Clearly the claim is true for k = 1. Assume true for all values i = 1, 2, . . . ,k. A Bk + 1
k
tree is formed by attaching a Bk tree to the original Bk tree. The original thus had nodes at depth d. The
d
k
attached tree had nodes at depth d−1, which are now at depth d. Adding these two terms and using a
d − 1
6.34
template<typename Comparable>
struct BiQueNode
{
Comparable item;
vector<BiQueNode *> pointers;
BiQueNode<Comparable> (Comparable e) : item(e) {}
};
template <typename Comparable>
class BinomalQue
{
private:
vector<BiQueNode<Comparable>> biQue;
};
6.37
/*
Bin packing
*/
#include <vector>
#include <queue>
using namespace std;
const double Cap = 1.0;
class Bins
{
private:
vector<double> bins;
priority_queue<double> heapBins;
public:
Bins(int size = 0)
{bins.resize(size);
for (int i = 0; i < size; i++)
bins[i] = 0;
}
void clear() {bins.clear();}
int size(){ return bins.size();}
void insertFirstFit(double item) // a.
{
for (int i = 0; i < bins.size(); i++)
if (bins[i] + item < Cap)
{
bins[i] += item;
return;
}
bins.push_back(item);
}
int insertWorstFit(double item) // b
{
static int size = 0;
double maxRoom;
if (heapBins.empty())
heapBins.push(Cap - item);
else
{
maxRoom = heapBins.top();
if (maxRoom > item) // there is room
{
Visit https://testbankdead.com
now to explore a rich
collection of testbank,
solution manual and enjoy
exciting offers!
heapBins.pop();
heapBins.push(maxRoom - item);
}
else
{heapBins.push(Cap - item);
size++;
}
}
return size;
}
void insertBestFit(double item) // c
{
double gap =Cap;
int gapIndex = -1;
if (bins.size() == 0)
bins.push_back(item);
else
{
for (int i = 0; i < bins.size(); i++)
if (bins[i]+item < Cap && bins[i]+item < gap)
{
gap = Cap - bins[i] - item;
gapIndex = i;
}
if (gapIndex < 0)
bins.push_back(item);
else
bins[gapIndex] += item;
}
}
};
d. yes
6.38 Don’t keep the key values in the heap, but keep only the difference between the value of the key in a node
6.39 O(N + k log N) is a better bound than O(N log k). The first bound is O(N) if k = O(N/log N). The second
bound is more than this as soon as k grows faster than a constant. For the other values (N/log N) = k = (N),
the first bound is better. When k = (N), the bounds are identical.
Other documents randomly have
different content
manners, conduct, and good breeding. But then it is to proclaim
oneself a fool to take a man at his own estimate of himself. I find
you here in the company of my niece. Favour me with an
explanation, Mr. Basil Whittingham."
"There is nothing to explain," said Basil, still with his arm round
Annette. "I have been absent some time, and happening,
fortunately, to return before Miss Bidaud left the country, have met
her here, and was exchanging a few words of farewell."
"I will not answer you," said Basil, with an encouraging smile at
Annette, whose face instantly brightened. "Annette knows I have
spoken the truth, and that is enough."
"Yes, Basil," said Annette, boldly, "you have spoken the truth, and
I will never, never forget what you have said to me to-day."
"Take her away," said Gilbert Bidaud to his sister; "the farce is
played out. In a week it will be forgotten."
"Just one moment, please," said Old Corrie, joining the group.
"Here is something that belongs to the little lady, that she would like
to take with her to the new world. It will remind her of the old, and
of friends she leaves in it."
In his heart Gilbert Bidaud was disposed to strangle the bird, but
his smile was amiability itself as he said to Annette, "Yours, my
child?"
"No," said Annette, before Old Corrie could speak. "I would not
care for it if he took money for it."
"Well said, little lady," said Old Corrie; "the bird is friendship's
offering, and for that will be valued and well cared for, I don't doubt.
It is your property, mind, and no one has a right to meddle with it."
"Not a bit of it," said Old Corrie. "If ladies were not present I'd
open my mind to you."
"Thank heaven," said Gilbert Bidaud, raising his eyes with mock
devotion, "for the restraining influence of the gentler sex. You do not
diminish my esteem for you. I know rough honesty when I meet
with it."
"Do you hear, little lady? Let us be thankful for small mercies.
Shake hands, my dear. When you're a woman grown, don't forget
Old Corrie."
"And don't forget," said Old Corrie, laying his hand on Basil's
shoulder, "that Master Basil here is a gentleman to be honoured and
loved, a man to be proud of, a man to treasure in your heart."
"I will never forget it," said Annette; with a fond look at Basil.
"And this, I think," said Gilbert Bidaud, with genial smiles all
round, "is the end of an act. Let the curtain fall to slow music."
"He has stolen Annette's locket!" she cried, pointing to the chain.
"I gave it to you, Basil," said Annette, slipping from her aunt's
grasp, and putting her hand on Gilbert Bidaud's. "It is false to say he
stole it. It belonged to me, and I could do what I pleased with it. I
gave it to Basil, and he did not want to take it at first, but I made
him."
She strove to wrench it from her uncle's hand, but it was easy for
him to keep it from her.
"I will have it!" cried Annette. "I will, I will! It is Basil's, and you
have no right to it."
"A storm in a teapot," said Gilbert Bidaud, who seldom lost his
self-possession for longer than a moment, "Sister, you should
apologise to the young gentleman. Take the precious gift."
"I shall find it, Annette," said Basil. "Good-bye, once more. May
your life be bright and happy!"
Those were the last words, and being uttered at the moment
Newman Chaytor caught the locket and was slinking off, were heard
and treasured by him.
The whole of that day Basil, assisted by Old Corrie and Chaytor,
searched for the locket, of course unsuccessfully. He was in great
distress at the loss; it seemed to be ominous of misfortune.
CHAPTER XXVIII.
The story of the lives of Basil and Chaytor during the ensuing
three years may be briefly summarised. So far as obtaining more
than sufficient gold for the bare necessaries of life were concerned,
ill-luck pursued them. They went from goldfield to goldfield, and
followed every new rush they heard of, and were never successful in
striking a rich claim. It was all the more tantalising because they
were within a few feet of great fortune at least half-a-dozen times.
On one goldfield they marked out ground, close to a claim of
fabulous richness, every bucket of wash-dirt that was hauled from
the gutter being heavily weighted with gold. This was the
prospectors' claim, and the shaft next to it struck the gutter to the
tune of twelve ounces a day per man. The same with the second,
and Basil and Chaytor had every reason, therefore, to congratulate
themselves, especially when the men working in the claim beyond
them also struck the lead, and struck it rich. But when at length the
two gold diggers in whom we are chiefly interested came upon the
gutter, they were dismayed to find that instead of ten ounces to the
tub, it was as much as they could do to wash out ten grains. It was
the only poor claim along the whole of the gutter; on each side of
them the diggers were coining money, and they were literally
beggars. It is frequently so on the goldfields, the life on which very
much resembles a lottery, riches next door to poverty; but the hope
of turning up a lucky number seldom dies out in the heart of the
miner. He growls a bit, apostrophises his hard luck in strong
language, is despondent for a day, and the next shakes off his
despondent fit, and buckles to again with a will, going perhaps to
another new rush, jubilant and full of hope, to meet again with the
same bad fortune. The romance of the goldfield is a rich vein for
novelists, some few of whom have tapped it successfully; but the
theme is far from being worn out, and presents as tempting material
to-day as it did years ago, when gold was first discovered in
Australia.
"It is maddening, Basil," said Chaytor, as he gazed gloomily at the
"prospect" in his tin dish--two or three specks which would not have
covered a pin's head. "Here we are upon the gutter again, and the
stuff will wash about half a pennyweight to the tub."
"It's jolly hard," said Basil, proceeding to fill his pipe with cut
cavendish, "but what can we do? Grin and bear it."
"Ah, you're philosophical, you are," growled Chaytor, "but I'm not
so easy minded. Just think of it, and bring a little spirit to bear upon
it, will you?"
"Here we are on Dead Man's Flat, and here we've been these last
three weeks. Just four days and three weeks ago we struck our
claim in Mountain Maid Gully, having got two ounces and three
pennyweights for our month's hard work. That contemptible parcel
of gold brought us in barely eight pounds, the gold buyer pretending
to blow away sand before he put it in the scale, but blowing away
more than two pennyweights of the stuff, and reducing it to a little
over two ounces. We weighed it in our own gold scales before we
took it to him, and it was two ounces three pennyweights full
weight. You can't deny that."
"I want to point out this thing particularly," fumed Chaytor, "so
that we can get to the rights of our ill luck, get to the bottom of it, I
mean, and find out the why and the wherefore. Eight pounds we
receive for our gold, when we should have received eight pounds
ten; not a sixpence less; but the world is full of thieves. Now, that
eight pounds gives us a little under twenty shillings a week a man. I
would sooner starve."
"It is the pinching of our own shoes we feel, old fellow. We're a
selfish lot of brutes. Thank you for pulling me up. I'm sorry for you,
Chaytor."
"And I'm sorry for you. Thinking our claim worthless we leave
Mountain Maid Gully, and come here to Dead Man's Flat. We are
ready to jump out of our skins with joy, for we come just in time--so
we think. Here's a new lead struck, with big nuggets in it, and we
mark out our claim exactly one hundred and twenty feet from the
prospector's ground. They get one day twenty ounces, the next day
twenty-eight, the next day forty-two--a fortune, if it lasts."
"It often does, and even if it lasts only six or seven weeks it
brings in a lot. 'We're in luck this time,' I say to you, and I dream of
nuggets as big as my head. The gutter, we reckon, is forty feet
down, and we reach it in three weeks. Everybody round us is making
his pile--why shouldn't we? But before we strike the lead a digger
comes up, and says, 'Hallo, mates, have you heard about the claim
you left in Mountain Maid Gully?' 'No,' say we, 'what about it?'--'Oh,'
says the digger, 'only that two new chums jumped in after you'd
gone away and found out it was the richest claim on the goldfield.
They took a thousand ounces out of it the second week they were at
work.' What do you say to that, Basil?"
"Not quite that. We've had as bad. What shall we do? Stick to it,
or try somewhere else?
"I agree to anything you wish, Chaytor. I will stay or go away, just
as you decide."
"I think so, once; not in any remarkable degree, but sufficient for
most purposes."
"And now?"
"And now," replied Basil, taking his pipe from his mouth, and
holding it listlessly between his fingers, "the life seems to have gone
out of me. The only tie that binds me to it is you. I owe you an
everlasting debt of gratitude, old fellow, and I wish I could do
something to repay it. But in tying yourself to me you are tied to a
log that keeps dragging you down. The ill luck that pursues us come
from me. Throw me off and fortune will smile upon you."
"No. The taste of all that's sweet and beautiful has gone out of
my mouth; I'm a soured man inside of me; you're a thousand times
better than I am. What is bitterness in you comes uppermost; it
pleases you to hide the best part of you; but you cannot hide it from
me, for I've had experience of you and know you. Now I'm the exact
reverse. Outwardly you would think I'm an easy-going, easy-natured
fellow, willing always to make the best of things, and to look on the
brightest side. It is untrue; I am a living hypocrite. Inwardly I revile
the world; because of my own disappointments I can see no good in
it. Good fortune or bad fortune, what does it matter to me now? It
cannot restore my faith, it cannot destroy the shroud which hangs
over my heart. That is the difference between us. You are a
thoroughly good fellow, I am a thoroughly bad one."
"It was not always the same with you. How have you become
soured?"
"I never knew till now, Basil," said Chaytor falsely, and in a tone
of false pity, "that you thought anything at all of not receiving
letters. You certainly succeeded in making me believe that it did not
matter one way or another."
"I would not accept it, Basil," said Chaytor; "we will share and
share alike. Have you no desire, then, to return to England?"
"I shall never go back," replied Basil. "My days will be ended in
Australia."
"Where you will one day meet with a woman who will drive all
thoughts of Annette out of your head."
"As she was, not as she is. I live upon the spirit of the past."
He spoke not as a young man, but as one who had lived long
years of sad and bitter experiences. In this he was unconsciously
doing himself a great wrong, for his heart was as tender as ever, and
in reality he had intense faith in the goodness of human nature; but
the theme upon which he had been dilating always, when he
reflected upon or spoke of it, filled his soul with gloom, and so
completely dominated him with its melancholy as to make him
unintentionally false to his true self.
CHAPTER XIX.
Lastly, there were the letters Annette wrote to Basil. They arrived
at intervals of about four months, so that Chaytor was in possession
of seven or eight of them. Proceeding as they did from a pure and
beautiful nature, these letters, had Basil received them, would have
been like wine to him, would have comforted and strengthened him
through the hardest misfortunes and troubles, would have kept the
sun shining upon him in the midst of the bitterest storms. He would
have continued to work with gladness and hope instead of with
indifference. It would have made the future a bright goal to which
his eyes would ever have been turned with joy. Evidences of
kindness and sympathy, still more, evidences of unselfish affection
and love, are like the dew to the flower. They keep the heart fresh,
they keep its windows ever open to the light. But of this blessing
Basil was robbed by the machinations of a scoundrel: hence there
was no sweetness in his labour, no hope for him in the future. So
much to heart did Basil take Annette's silence that, had his nature
been inclined to evil instead of good, mischief to others would
probably have ensued, but as it was he was the only sufferer. In his
utterances, when he was drawn to speak of the shock he had
received, he was apt to exaggerate matters and to present himself in
the worst light, but there had fallen to his share an inheritance of
moral goodness which rendered it impossible for him to become a
backslider from the paths of rectitude and honour. Except that he
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
testbankdeal.com