All pastes #538225 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-04 23:51 UTC
rendered paste body
// REVERSE FUNCTION CODE-/**
     * Reverses all links in the list.  The former tail will now be the head
     * and the former head will become the tail.
     *
     * \note The list should be reversed in one pass.  No new nodes should be
     * created.
     */

void SLL::reverse() {
	if((head->next!=0) && (head !=0)){//if one node or no nodes do nothing
	Node *temp, *pred, *temperary2;
	for(temperary2=tail;temperary2!=head;temperary2=pred){//continue inner loop untill all next field's are changed except for head
        for(pred=head, temp=head->next; temp != temperary2;//find predessor node and change current node to point to pred
		pred= pred->next, temp=temp->next);
        temperary2->next=pred;
	}
	temp = head;//switch head
	head=tail;// and
	tail=temp;//tail nodes
	tail->next=0;//initilize tail's next field to NULL
	}
}

**************************************************************************************************
TEST THAT DOESN'T work:
cout << endl << "Testing Reverse: " << endl;
    SLL list2;
    cout << "before call to Reverse: " << endl;
    list2.printAll();
    list2.reverse();
    cout << "after call to Reverse: " << endl;
    list2.printAll();