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 29C

Explanation of Solution

Algorithm to compare two circularly linked lists is same:

The algorithm to compare two circularly linked lists “L” and “M” are same sequence of elements given below:

Algorithm:

Input: Two circularly linked list “L” and “M”.

Output: Return true when two circular linked lists “L” and “M” are same sequence of elements. Otherwise, return false.

equal(L :Circularly linked list, M Circularly linked list):

    //Create new node for list "L" and "M"

  Create a new node "a" and "b"

/*Call getHead() method using circularly linked list "L" to assign the head of list as "a". */

  a = L.getHead();

/*Call getHead() method using circularly linked list "M" to assign the head of list as "b". */

  b = M.getHead();

/*Loop executes until the next node of list is not equal to "null" for both lists. */

  while (a.getNext()!= null || b.getNext()!= null)

  {

/*Loop executes until both list elements are not equal. */

  while(a.getElement() != b.getElement())

  //Assign next node as "b"

  b = b.getNext();

  //Assign next node as "a"

  a = a.getNext();

/*Call getHead() method using circularly linked list "M" to reassign the head of list as "b". */

  b = M...

Blurred answer
Students have asked these similar questions
Exercise 1 Function and Structure [30 pts] Please debug the following program and answer the following questions. There is a cycle in a linked list if some node in the list can be reached again by continuously following the next pointer. #include typedef struct node { int value; struct node *next; } node; int 11_has_cycle (node *first) if (first == node *head = { NULL) return 0; first; while (head->next != NULL) { } if (head first) { return 1; } head = head->next; return 0; void test ll_has_cycle () { int i; node nodes [6]; for (i = 0; i < 6; i++) { nodes [i] .next = NULL; nodes [i].value = i; } nodes [0] .next = &nodes [1]; nodes [1] .next = &nodes [2]; nodes [2] .next = &nodes [3]; nodes [3] .next nodes [4] .next &nodes [4]; NULL; nodes [5] .next = &nodes [0]; printf("1. Checking first list for cycles. \n Function 11_has_cycle says it has s cycle\n\n", 11_has_cycle (&nodes [0])?"a":"no"); printf("2. Checking length-zero list for cycles. \n Function 11_has_cycle says it has %s…
how to read log logs
Discrete Mathematics for Computer Engineering
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning