100% de satisfacción garantizada Inmediatamente disponible después del pago Tanto en línea como en PDF No estas atado a nada 4.2 TrustPilot
logo-home
Examen

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

Puntuación
-
Vendido
-
Páginas
122
Grado
A+
Subido en
09-04-2025
Escrito en
2024/2025

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

Institución
Data Structures And Algorithms In Java, 6th Edit
Grado
Data Structures and Algorithms in Java, 6th edit
















Ups! No podemos cargar tu documento ahora. Inténtalo de nuevo o contacta con soporte.

Libro relacionado

Escuela, estudio y materia

Institución
Data Structures and Algorithms in Java, 6th edit
Grado
Data Structures and Algorithms in Java, 6th edit

Información del documento

Subido en
9 de abril de 2025
Número de páginas
122
Escrito en
2024/2025
Tipo
Examen
Contiene
Preguntas y respuestas

Temas

Vista previa del contenido

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());
}
$13.49
Accede al documento completo:

100% de satisfacción garantizada
Inmediatamente disponible después del pago
Tanto en línea como en PDF
No estas atado a nada

Conoce al vendedor

Seller avatar
Los indicadores de reputación están sujetos a la cantidad de artículos vendidos por una tarifa y las reseñas que ha recibido por esos documentos. Hay tres niveles: Bronce, Plata y Oro. Cuanto mayor reputación, más podrás confiar en la calidad del trabajo del vendedor.
TestBankEditor Chamberlain School Of Nursing
Seguir Necesitas iniciar sesión para seguir a otros usuarios o asignaturas
Vendido
14
Miembro desde
9 meses
Número de seguidores
1
Documentos
360
Última venta
4 días hace
GUARANTEED A+ SOLUTIONS

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

2.5

2 reseñas

5
0
4
0
3
1
2
1
1
0

Recientemente visto por ti

Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

Preguntas frecuentes