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]
3 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]3 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
Battery maker Duracell introduced a new product called the Duracell Powermat, which is a wireless charging pad for mobile device
lapo4ka [179]

Answer:

<em>Brand Extension </em>

Explanation:

Brand extension is using a brand name for a new product or class of product or service.

A brand extension takes advantage of a well-known product's prestige and success to start a new product.

There must be a logical link between the original product and the new item to be effective. The opposite effect, product dilution, may result from a weak or non-existent relationship.

7 0
4 years ago
Discuss data and its types from computer programming and data analysis prospectively?​
Hoochie [10]

Answer:

With the use of data and their types the extent of how much data can be stored can get insanely large. types like doubles and longs allow for a range of values nearly incomprehensible in their size for storing user information, web pages, games ect. Using them essentially allows you to plan for the future of the size of whatever you're creating. On top of that, it allows for a preciseness not typically able to be reached without these types.

3 0
3 years ago
The cardinality of the friend_of relationship set between two student entities in the student entity set should be:
Afina-wow [57]

Answer:

One to One Relationship

Explanation:

Given that in a computer systems analysis about an entity-relationship model, a one-to-one relationship is a form of cardinality that involves the relationship that exists between two different entities Y and Z, such that one element Y can only be associated with one element Z, or in the other way round.

Hence, the cardinality of the friend_of relationship set between two student entities in the student entity set should be: "One to One Relationship"

3 0
3 years ago
Abby is creating a professional development plan to advance in her current career. She has identified what job she wants and wha
Andre45 [30]

Evaluate her current skills and identify areas of improvement

5 0
3 years ago
Type the correct answer in the box. Spell all words correctly.
mojhsa [17]

Answer:

h

Explanation:

4 0
3 years ago
Other questions:
  • Web design people please help!
    7·1 answer
  • What are some pros and cons of being a Computer Hardware Engineer?
    15·1 answer
  • ICT excel data homework
    10·1 answer
  • if you could take on the role as game designer and could change or add some type of financial aspect about the game what would b
    6·1 answer
  • Discuss why it is common for XML to be used in interchanging data over the Internet. What are the advantages of using XML in dat
    7·1 answer
  • When a cardholder successfully contests a charge, the acquiring bank must retrieve the money it placed in the merchant account i
    12·1 answer
  • Write the algorithm for finding the perimeter of a rectangle using English like form step by step
    10·1 answer
  • What is binary number system? Why is it used in computer system?
    13·2 answers
  • Which of these is an example of input?
    6·1 answer
  • Choose the item which best describes the free frame list. 1. a per process data structure of available physical memory 2. a glob
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!