1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
andrezito [222]
2 years ago
13

Modify the NumberedList class we implementd during the lecture by adding a member function: void NumberedList::insertPosition(in

t num, int pos) for inserting a new item at a specified position. A position of 0 means that the value will become the first item on the list, a position of 1 means that the value will become the second item on the list, and so on. A position equal to or greater than the length of the list means that the value is placed at the end of the list.
Computers and Technology
1 answer:
satela [25.4K]2 years ago
3 0

Answer:

Check the explanation

Explanation:

#include<iostream>

using namespace std;

class LinkedList

{

private:

   // Declare a structure for the list.

   struct ListNode

   {

   int value;        // The value in this node.

   struct ListNode *next;// To point to the next node.

   };

   ListNode *head;        // List head pointer.

public:

   // Constructor.

   LinkedList()

       { head = NULL; }

   

   // Destructor

   ~LinkedList();

   

   // Linked list operations.

   void appendNode( int );

   void insertNode( int );

   void insertNodeAt(int,int);

    void deleteNode( int );

   void Reverse();

   void deleteAt(int);

   int Search(int);

   void display() const;

};

// appendNode appends a node containing the      

// value passed into num, to the end of the list.  

void LinkedList::appendNode( int num )

{

  ListNode *newNode; // To point to a new node.

  ListNode *nodePtr; // To move through the list.

  // Allocate a new node and store num there.

  newNode = new ListNode;

  newNode->value = num;

  newNode->next = NULL;

  // If there are no nodes in the list.

  // make newNode the first node.

  if ( !head )

     head = newNode;

  else // Otherwise, insert newNode at end.

  {

     // Initialize nodePtr to head of list.

     nodePtr = head;

     // Find the last node in the list.

     while ( nodePtr->next )

        nodePtr = nodePtr->next;

     // Insert newNode as the last node.

     nodePtr->next = newNode;

  }    //    end else-if

  display();  

}    //    end function appendNode

// displayList shows the value stored in each              

// node of the linked list pointed to by head.      

                       

void LinkedList::display() const

{

   ListNode *nodePtr; // To move through the list

   if ( !head )

   {

       cout << "\n\tThe list is empty.";

       return;

   }

   // Position nodePtr at the head of the list.

   nodePtr = head;

   cout << "\n\n\tThe elements in the list are:\n\t";

   // While nodePtr points to a node, traverse the list.

 

    while (nodePtr)

   {

       // Display the value in this node.

       cout << nodePtr->value << " -> ";

       // Move to the next node.

       nodePtr = nodePtr->next;

   }    //    end while.

   cout << "Null";

}    //    end function displayList.

// Reverse function re-arranges node in the list.

void LinkedList::Reverse()

{

   ListNode *nodePtr;

   ListNode *next;

   ListNode *result=NULL;

   if ( !head )

   {

       cout << "\n\tThe list is empty.";

       return;

   }

   // Position nodePtr at the head of the list.

   nodePtr = head;

   while (nodePtr!=NULL)

   {

       next=nodePtr->next;

       nodePtr->next=result;

       result=nodePtr;

       nodePtr=next;

   }

   head=result;

display();

}

// The insertNode function inserts a node with num copied to its value member.                

void LinkedList::insertNode( int num )

{

   ListNode *newNode;             // A new node.

   ListNode *nodePtr;             // To traverse the list.

   ListNode *previousNode = NULL; // The previous node.

   // Allocate a new node and store num there.

   newNode = new ListNode;

   newNode->value = num;

   newNode->next = NULL;

 

   // If there are no nodes in the list make newNode the first node.

   if ( !head )

       head = newNode;

   else // Otherwise, insert newNode.

   {

       // Position nodePtr at the head of list.

       nodePtr = head;

       //    Initialize previousNode to NULL.

       previousNode = NULL;

       //    Skip all nodes whose value is less than num.

       while ( nodePtr != NULL && nodePtr->value < num )

       {

           previousNode = nodePtr;

           nodePtr = nodePtr->next;

       }

       //If the new node is to be the 1st in the list,

       //    insert it before all other nodes.

       if ( previousNode == NULL )

       {

           head = newNode;

           newNode->next = nodePtr;

       }

       else // Otherwise insert after the previous node.

       {

           previousNode->next = newNode;

           newNode->next = nodePtr;

       }

   }    //    end else-if

     

display();  

}    //    end function insertNode.

// The insertNode function inserts a node at pos  

//with num copied to its value member.          

void LinkedList::insertNodeAt( int num ,int pos)

{

   ListNode *newNode;             // A new node.

   ListNode *nodePtr;             // To traverse the list.

   ListNode *previousNode = NULL; // The previous node.

   int i=0;

   // Allocate a new node and store num there.

   newNode = new ListNode;

   newNode->value = num;

   newNode->next = NULL;

   // Position nodePtr at the head of list.

       nodePtr = head;

   if(pos==0)//to inserted at first.

   {  

       newNode->next=head;

       head=newNode;

   }

   else

   {

   while(nodePtr != NULL && i<pos) //loop to reach position.

       {  

           previousNode=nodePtr;

           nodePtr=nodePtr->next;

           i++;

       }

       if(nodePtr==NULL)//position not found.

           cout<<"Invalid Position :"<<endl;

       else//inserts node.

       {

           newNode->next=nodePtr;

           previousNode->next=newNode;

       }

   }

   display();

}

//    The deleteNode function searches for a node with num as its value.  

//The node, if found, is deleted from the list and from memory.

void LinkedList::deleteNode( int num )

{

   ListNode *nodePtr;       // To traverse the list.

   ListNode *previousNode;//To point to the previous node.

   // If the list is empty, do nothing.

   if ( !head )

   {

       cout << "\n\tFailed to delete as list is empty.";  

       return;

   }

   // Determine if the first node is the one.

   if ( head->value == num )

   {

       nodePtr = head->next;

       delete head;

       head = nodePtr;

   }

   else

   {

       // Initialize nodePtr to head of list.

       nodePtr = head;

       // Skip all nodes whose value member is not equal to num.

       while (nodePtr != NULL && nodePtr->value != num)

       {

           previousNode = nodePtr;

           nodePtr = nodePtr->next;

       }

You might be interested in
What is a killer app??
mars1129 [50]
Application of a new technology and is much superior to rival products
6 0
3 years ago
In understanding "controlling for" a third variable, which of the following is a similar concept? a. Conducting a replication b.
nordsb [41]

Answer:

D) Identifying Subgroups

Explanation:

In data Analytics, a third variable also known as a confounding variable, is a variable that "sits in-between", it has influence on both the independent variable and dependent variable. If this "third variable" is not properly handled, the result of the anlysis will yeild incorrect values. identifying subgroups in a dataset is important for undertanding it

7 0
2 years ago
Clunker Motors Inc. is recalling all vehicles in its Extravagant line from model years 1999-2002 as well all vehicles in its Guz
Aleksandr [31]

Answer:

The following code is written in java programming language:

//set if statement

if (((modelYear >= 1999) && (modelYear <= 2002) && (modelName == "Extravagant")) || ((modelYear >= 2004) && (modelYear <= 2007) && (modelName == "Guzzler")))

{

recalled = true;    //initialized Boolean value

}

else      //set else statement

{

recalled = false; ////initialized Boolean value

}

Explanation:

Here, we set the if statement and set condition, if the value of modelYear is greater than equal to 1999 and less that equal to 2002 and modelName is equal to "Extravagant" or the value of modelYear is greater than equal to 2004 and less than equal to 2007 and the model year is equal to "Guzzler", than "recalled" initialized to "true".

Otherwise "recalled" initialized to "true".

5 0
3 years ago
Who invented "qwerty" On the keyboard and why did that person mix up all of the letters
alexandr402 [8]

Answer: Prototypes had a problem with the bars colliding with each other and jamming. So the story goes that he arranged the keys with the most common letters in hard to reach spots, to slow typists down and try to avoid this problem.

Explanation: In the 1860s, a politician, printer, newspaper man, and amateur inventor in Milwaukee by the name of Christopher Latham Sholes spent his free time developing various machines to make his businesses more efficient.

Hope this helped!

4 0
3 years ago
Which photographer invented the Zone System?
tia_tia [17]
<span>Ansel Adams & Fred Archer</span>
6 0
3 years ago
Read 2 more answers
Other questions:
  • By applying styles formats are being applied ?
    14·2 answers
  • When driving, your attention is __________.
    5·2 answers
  • You are building a gaming computer and you want to install a dedicated graphics card that has a fast gpu and 1gb of memory onboa
    15·2 answers
  • The Fibonacci numbers are the numbers
    15·1 answer
  • How does the purchase of office equipment on account affect the accounting equation?
    11·2 answers
  • Misspelet errors are displays with a ...<br>.. below them<br>​
    10·1 answer
  • . When attempting to minimize memory usage, the most efficient way to do group processing when using the MEANS procedure is to u
    13·1 answer
  • Which steps are needed for word to create an index
    5·1 answer
  • In designing a database, a database administrator should consider..
    12·2 answers
  • You are the IT security administrator for a small corporate network. The HR director is concerned that an employee is doing some
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!