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

Explanation of Solution

Algorithm to swap two nodes in singly linked list:

The algorithm to swap two nodes “x” and “y” in singly linked list “L” is given below:

Algorithm:

Input: Two nodes “x” and “y”.

Output: Swap the two nodes in singly linked list “L”.

swapSingly(x, y):

  //Create a node to assign the head into it

  Node n = head;

/*Loop executes until the next node of head is not equal to "x" node. */

  while(n.getNext() != x)

/*Get next node of head and assign it into "n" node. */

  n = n.getNext();

/*Get the next node of "y" node and assign it into "v" node. */

  Node v = y.getNext();

/*Call setNext() method to set the next node as "y" node by using "n".*/

  n.setNext(y);

/*Call setNext() method to set the next node as "x" node by using "y". */

  y.setNext(x);

/*Call setNext() method to set the next node as "v" node by using "x". */

  x.setNext(v);

Explanation:

In the above algorithm,

  • This method accepts two input parameters such as “x” and “y”.
  • Create new node “n” and “v” to hold nodes “x” and “y” from singly linked lists.
  • The while loop executes until the next node of head is not equal to “x” node.
    • Get next node of head and assign it into “n” node.
  • Get the next node of “y” node and assign it into “v” node.
  • Call setNext() method to set the next node as “y” node by using “n”.
  • Call setNext() method to set the next node as “x” node by using “y”.
  • Call setNext() method to set the next node as “v” node by using “x”.
  • Finally, the two nodes “x” and “y” are swapped in singly linked list.

Algorithm to swap two nodes in doubly linked list:

The algorithm to swap two nodes “x” and “y” in singly linked list “L” is given below:

Algorithm:

Input: Two nodes “x” and “y”.

Output: Swap the two nodes in doubly linked list “L”.

swapDoubly(x, y):

/*Create a node to assign the previous node of "x" node into it...

Blurred answer
Students have asked these similar questions
(c) Consider the following set of processes: Process ID Arrival Time Priority Burst Time A 2 3 100 B 6 C 10 1 (highest) 2 40 80 D 16 4 (lowest) 20
(3c) In the following resource allocation graph, is the state a deadlocked one? If so which ones are deadlocked? (3 points) Resource allocation graph. R₁ = Resource, P = process. R1 R3 R3 7
What resources are used when a thread is created? How do these differ from those used when a process is created?
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
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
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr