100% tevredenheidsgarantie Direct beschikbaar na je betaling Lees online óf als PDF Geen vaste maandelijkse kosten 4.2 TrustPilot
logo-home
Tentamen (uitwerkingen)

Solutions Manual for Data Structures and Algorithms in Java, 6th edition by Michael Goodrich, Roberto Tamassia (All Chapters)

Beoordeling
-
Verkocht
-
Pagina's
122
Cijfer
A+
Geüpload op
09-04-2025
Geschreven in
2024/2025

Solutions Manual for Data Structures and Algorithms in Java, 6th edition by Michael Goodrich, Roberto Tamassia (All Chapters)

Instelling
Data Structures And Algorithms In Java, 6th Edit
Vak
Data Structures and Algorithms in Java, 6th edit
















Oeps! We kunnen je document nu niet laden. Probeer het nog eens of neem contact op met support.

Gekoppeld boek

Geschreven voor

Instelling
Data Structures and Algorithms in Java, 6th edit
Vak
Data Structures and Algorithms in Java, 6th edit

Documentinformatie

Geüpload op
9 april 2025
Aantal pagina's
122
Geschreven in
2024/2025
Type
Tentamen (uitwerkingen)
Bevat
Vragen en antwoorden

Onderwerpen

Voorbeeld van de inhoud

Solutions Manual for
Data Structures and
Algorithms in Java, 6e
Michael Goodrich,
Roberto Tamassia (All
Chapters)

, Chapter


1 Java Primer

Hints and Solutions

Reinforcement
R-1.1) Hint Use the code templates provided in the Simple Input and
Output section.
R-1.2) Hint You may read about cloning in Section 3.6.
R-1.2) Solution Since, after the clone, A[4] and B[4] are both pointing to
the same GameEntry object, B[4].score is now 550.
R-1.3) Hint The modulus operator could be useful here.
R-1.3) Solution
public boolean isMultiple(long n, long m) {
return (n%m == 0);
}
R-1.4) Hint Use bit operations.
R-1.4) Solution
public boolean isEven(int i) {
return (i & 1 == 0);
}
R-1.5) Hint The easy solution uses a loop, but there is also a formula for
this, which is discussed in Chapter 4.
R-1.5) Solution
public int sumToN(int n) {
int total = 0;
for (int j=1; j <= n; j++)
total += j;
return total;
}

,2 Chapter 1. Java Primer
R-1.6) Hint The easy thing to do is to write a loop.
R-1.6) Solution
public int sumOdd(int n) {
int total = 0;
for (int j=1; j <= n; j += 2)
total += j;
return total;
}
R-1.7) Hint The easy thing to do is to write a loop.
R-1.7) Solution
public int sumSquares(int n) {
int total = 0;
for (int j=1; j <= n; j++)
total += j∗j;
return total;
}
R-1.8) Hint You might use a switch statement.
R-1.8) Solution
public int numVowels(String text) {
int total = 0;
for (int j=0; j < text.length(); j++) {
switch (text.charAt(j)) {
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
total += 1;
}
}
return total;
}
R-1.9) Hint Consider each character one at a time.

, 3
R-1.10) Hint Consider using get and set methods for accessing and mod-
ifying the values.
R-1.11) Hint The traditional way to do this is to use setFoo methods,
where Foo is the value to be modified.
R-1.11) Solution
public void setLimit(int lim) {
limit = lim;
}

R-1.12) Hint Use a conditional statement.
R-1.12) Solution
public void makePayment(double amount) {
if (amount > 0)
balance − = amount;
}
R-1.13) Hint Try to make wallet[1] go over its limit.
R-1.13) Solution

for (int val=1; val <= 58; val++) {
wallet[0].charge(3∗val);
wallet[1].charge(2∗val);
wallet[2].charge(val);
}
This change will cause wallet[1] to attempt to go over its limit.


Creativity
C-1.14) Hint The Java method does not need to be passed the value of n
as an argument.
C-1.15) Hint Note that the Java program has a lot more syntax require-
ments.
C-1.16) Hint Create an enum type of all operators, including =, and use
an array of these types in a switch statement nested inside for-loops to try
all possibilities.
C-1.17) Hint Note that at least one of the numbers in the pair must be
even.
C-1.17) Solution

,4 Chapter 1. Java Primer

public boolean hasEvenPair(int[ ] data) {
if (data.length > 1) {
for (int j=0; j < data.length; j++)
if (data[j] % 2 == 0)
return true;
}
return false;
}
C-1.18) Hint Use the Math.pow function for calculations. Use your so-
lution for norm(v,p) to implement norm(v).
C-1.18) Solution
public double norm(double[ ] v, int p) {
int total = 0;
for (double k : v)
total += Math.pow(k,p);
double exp = 1.0/p;
return Math.pow(total, exp);
}

public double norm(double[ ] v) {
return norm(v,2);
}
C-1.19) Hint This is the same as the logarithm, but you can use recursion
here rather than calling the log function.
C-1.20) Hint The simple solution just checks each number against every
other one, but we will discuss better solutions later in the book. Make sure
you don’t compare a number to itself.
C-1.20) Solution
public boolean distinct(float[ ] data) {
for (int j=0; j < data.length − 1; j++)
for (int k=j+1; k < data.length; k++)
if (data[j] == data[k])
return false;
return true;
}
C-1.21) Hint Consider using swaps to reshuffle the array one entry at a
time, starting from the beginning and moving to the end.
C-1.22) Hint There are many solutions. If you know about recursion, the
easiest solution uses this technique. Otherwise, consider using an array to

, 5
hold solutions. If this still seems to hard, then consider using six nested
loops (but avoid repeating characters and make sure you allow all string
lengths).

C-1.22) Solution Here is a possible solution:

public static void permute(ArrayList bag, ArrayList permutation) {
// When the bag is empty, a full permutation exists
if (bag.isEmpty() ) {
System.out.println(permutation);
} else {
// For each element left in the bag
for(int i = 0; i < bag.size(); i++) {
// Take the element out of the bag
// and put it at the end of the permutation
Object obj = bag.get(i);
bag.remove(i);
permutation.add(obj);

// Permute the rest of the bag (recursively)
permute(bag, permutation);

// Take the element off the permutation
// and put it back in the bag
permutation.remove(permutation.size() − 1);
bag.add(i, obj);
}
}
}

public static void main(String[ ] args) {
ArrayList<Character> orig = new ArrayList<>();
char[ ] word = {'c', 'a', 't', 'd', 'o', 'g'};
for (char c : word)
orig.add(c);
permute(orig, new ArrayList());
}


C-1.23) Hint Go back to the definition of dot product and write a for loop
that matches it.

C-1.23) Solution

,6 Chapter 1. Java Primer

public int[ ] compute(int[ ] a, int[ ] b) {
if (a.length != b.length)
throw new IllegalArgumentException("arrays must have same length")
int[ ] c = new int[a.length];
for (int j=0; j < a.length; j++)
c[j] = a[j] ∗ b[j];
return c;
}
C-1.24) Hint The card is no longer needed as an explicit parameter.
C-1.24) Solution
public void printSummary() {
System.out.println("Customer = " + customer);
System.out.println("Bank = " + bank);
System.out.println("Account = " + account);
System.out.println("Balance = " + balance);
System.out.println("Limit = " + limit);
}
C-1.25) Hint You might use a StringBuilder to compose the pieces of the
string into one large string (including newlines).
C-1.25) Solution
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Customer = " + customer + System.lineSeparator());
sb.append("Bank = " + bank + System.lineSeparator());
sb.append("Account = " + account + System.lineSeparator());
sb.append("Balance = " + balance + System.lineSeparator());
sb.append("Limit = " + limit + System.lineSeparator());
return sb.toString();
}



Projects
P-1.26) Hint Use an array to buffer all the original lines.
P-1.27) Hint You do not need to use a graphical user interface, but you
may want to use the System.console() method.
P-1.28) Hint Define a way of indexing all the sentences and the location
in each one and then work out a way of picking eight of these locations
for a typo.

, 7
P-1.29) Hint Use a two-dimensional array to keep track of the statistics
and a one-dimensional array for each experiment.
P-1.30) Hint We recommend using the Java Swing package.

, Chapter


2 Object-Oriented Design

Hints and Solutions
Reinforcement
R-2.1) Hint Think of applications that could cause a death if a computer
failed.
R-2.1) Solution Air traffic control software, computer integrated surgery
applications, and flight navigation systems.
R-2.2) Hint Consider an application that is expected to change over time,
because of changing economics, politics, or technology.
R-2.3) Hint Consider the File or Window menus.
R-2.4) Hint You can make the change and test the code.
R-2.4) Solution The problem is that when a $5 penalty is assessed, pre-
sumably because of an attempt to go over the credit limit, the call charge(5)
recursively invokes the PredatoryCreditCard.charge method; since that
fee could again be an attempt at violating the credit limit, it too may fail,
leading to an infinite recursion.
R-2.5) Hint You can make the change and test the code.
R-2.5) Solution The goal is to assess a $5 charge as a penalty, yet that
charge may be refused by the call to super.charge(5) if the user is already
at or near the credit limit.
R-2.6) Hint Your program should output 42, which Douglas Adams con-
siders to be the answer to the ultimate question of life, universe, and ev-
erything.
R-2.6) Solution
public static void main(String[ ] args) {
FibonacciProgression fp = new FibonacciProgression(2,2);
for (int j=0; j < 7; j++)
fp.nextValue(); // ignore the first 7 values
System.out.println(fp.nextValue());
}

Maak kennis met de verkoper

Seller avatar
De reputatie van een verkoper is gebaseerd op het aantal documenten dat iemand tegen betaling verkocht heeft en de beoordelingen die voor die items ontvangen zijn. Er zijn drie niveau’s te onderscheiden: brons, zilver en goud. Hoe beter de reputatie, hoe meer de kwaliteit van zijn of haar werk te vertrouwen is.
TestBankEditor Chamberlain School Of Nursing
Volgen Je moet ingelogd zijn om studenten of vakken te kunnen volgen
Verkocht
14
Lid sinds
9 maanden
Aantal volgers
1
Documenten
360
Laatst verkocht
5 dagen geleden
GUARANTEED A+ SOLUTIONS

TestBankEditor !!!I have Accounting, Finance, Biology, Chemistry, Economics, Nursing and other Subjects A+ Tests banks and Solution Manual

2,5

2 beoordelingen

5
0
4
0
3
1
2
1
1
0

Recent door jou bekeken

Waarom studenten kiezen voor Stuvia

Gemaakt door medestudenten, geverifieerd door reviews

Kwaliteit die je kunt vertrouwen: geschreven door studenten die slaagden en beoordeeld door anderen die dit document gebruikten.

Niet tevreden? Kies een ander document

Geen zorgen! Je kunt voor hetzelfde geld direct een ander document kiezen dat beter past bij wat je zoekt.

Betaal zoals je wilt, start meteen met leren

Geen abonnement, geen verplichtingen. Betaal zoals je gewend bent via iDeal of creditcard en download je PDF-document meteen.

Student with book image

“Gekocht, gedownload en geslaagd. Zo makkelijk kan het dus zijn.”

Alisha Student

Veelgestelde vragen