Data Structures and Algorithms in Java
Data Structures and Algorithms in Java
6th Edition
ISBN: 9781119278023
Author: Michael T. Goodrich; Roberto Tamassia; Michael H. Goldwasser
Publisher: Wiley Global Education US
Expert Solution & Answer
Book Icon
Chapter 3, Problem 15R

Explanation of Solution

Method equals() in CircularlyLinkedList class:

//Define the equals() method

public boolean equals(CircularlyLinkedList<E> other)

{

  //Declare and initailze the Boolean variable

boolean result = false;

/*Call size() to find the first list size and assign it into "size1" variable. */

int size1 = size();

/*Call size() to find the second list size and assign it into "size2" variable. */

int size2 = other.size();

//Check whether the size of the two lists is equal

if(size1 != size2)

  //Return false that is, two lists are not equal

  return result;

/*Call equals() method recursively to check first element in two lists are equal and the result into "result" variable. */

  result = head.equals(other.head);   

//Check whether "result" is not equal to false

if (!result)

//Return true that is, two lists are equal

  return result;   

/*Assign the next of head from current list into "next" node. */

Node<E> next = head.getNext();

/*Assign the next of head from other list into "nextOfOther" node. */

Node<E> nextOfOther = other.head.getNext();

/*Loop executes until the size of current list is greater than 1. */

  while (size1 > 1)

{

/*Call equals() method recursively to check all the elements in two lists are equal and assign the true if it is equal otherwise, false. */

result = next.equals(nextOfOther);

  //Check whether "result" is not equal to true

if (!result)

  // Break it, because, they aren't equal

  break;

/*Assign the next of next from current list into "next" node...

Blurred answer
Students have asked these similar questions
Using the notation

you can select multipy options
For each of the following, decide whether the claim is True or False and select the True ones: Suppose we discover that the 3SAT can be solved in worst-case cubic time. Then it would mean that all problems in NP can also be solved in cubic time. If a problem can be solved using Dynamic Programming, then it is not NP-complete. Suppose X and Y are two NP-complete problems. Then, there must be a polynomial-time reduction from X to Y and also one from Y to X.
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
COMPREHENSIVE MICROSOFT OFFICE 365 EXCE
Computer Science
ISBN:9780357392676
Author:FREUND, Steven
Publisher:CENGAGE L
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning