Please implement this function: void swap(int pos1, int pos2) {}. There's an answer from the previous teacher but he added '' node** hRef " in the function (see below) please correct without the href....



Please implement this function:



void swap(int pos1, int pos2) {}.





There's an answer from the previous teacher but he added '' node** hRef " in the function (see below) please correct without the href.



  • For LinkedList, to maintain integrity of data in the structure, you are not to swap directly the element, nor remove a node. Instead, you are to only change the nodes'nextpointers.



PLEASE CORRECT THIS ONE


void swap(node** hRef, int pos1, int pos2) {
    if (pos1 == pos2)
        return;


    node *prevNode1 = NULL;
    node* currNode1 = *hRef;


    while (currNode1 && currNode1->index != pos1) {
        prevNode1 = currNode1;
        currNode1 = currNode1->next;
    }


    node *prevNode2 = NULL;
    node *currNode2 = *hRef;


    while (currNode2 && currNode2->index != pos2) {
        prevNode2 = currNode2;
        currNode2 = currNode2->next;
    }


    if (currNode1 == NULL || currNode2 == NULL)
        return;


    if (prevNode1 != NULL)
        prevNode1->next = currNode2;
    else
        *hRef = currNode2;



    if (prevNode2 != NULL)
        prevNode2->next = currNode1;
    else
        *hRef = currNode1;


    node* temp = currNode2->next;
    currNode2->next = currNode1->next;
    currNode1->next = temp;
}



Jun 11, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here