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
A wireless _____ area network is designed for devices in an area up to 50 kilometers (31 miles) using rf or infrared transmissio
gavmur [86]
Metropolitan. Hope this helps!
7 0
3 years ago
Your solution should for this assignment should consist of five (5)files:============================================== FuelGaug
olga nikolaevna [1]

Answer: provided in the explanation section

Explanation:

This was implemented in C++

Filename: Car.cpp

#include <iostream>

#include <iomanip>

#include <cstdlib>

#include "Odometer.h"

using namespace std;

int main()

{

  char response;

  do

  {

      FuelGuage* myFuel = new FuelGuage(6);

      int fuelLevel = myFuel->getFuel();

      cout << "Car gas level: " << fuelLevel << endl;

      cout << "Car is filling up" << endl;

      while(myFuel->getFuel() < 15)

      {

          myFuel->addFuel();

      }

      Odometer* car = new Odometer(myFuel, 999990);

      cout << "Car gas level: " << car->getFuelGuage()->getFuel() << endl;

      cout << "Car is off!" << endl;

      cout << "--------------------------" << endl;

      while(car->getFuelGuage()->getFuel() > 0)

      {

          car->addMile();

          int miles = car->getMileage();

          cout << "Mileage: " << setw(6) << miles << ", Fuel Level: " << car->getFuelGuage()->getFuel() << endl;

          cout<<"--------------------------------------------------------------"<<endl;

      }

      delete myFuel;

      delete car;

      cout << "Would you like to run the car again(Y/N)? ";

      cin >> response;

      system("cls||clear");

  } while(toupper(response) != 'N');

  return 0;

}

Filename: FuelGuage.cpp

#include "FuelGuage.h"

FuelGuage::FuelGuage()

{

  init();

}

FuelGuage::FuelGuage(int fuel)

{

  init();

  this->fuel = fuel;

}

FuelGuage::FuelGuage(const FuelGuage& copy)

{

  this->fuel = copy.fuel;

}

void FuelGuage::init()

{

  this->fuel = 0;

}

int FuelGuage::getFuel()

{

  return fuel;

}

void FuelGuage::addFuel()

{

  fuel++;

}

void FuelGuage::burnFuel()

{

  fuel--;

}

Filename:FuelGuage.h

#ifndef FUEL_GUAGE_H

#define FUEL_GUAGE_H

class FuelGuage

{

private:

  int fuel;

  void init();

public:

  FuelGuage();

  FuelGuage(int fuel);

  FuelGuage(const FuelGuage& copy);

  int getFuel();

  void addFuel();

  void burnFuel();

};

#endif

Filename : Odometer.cpp

#include "Odometer.h"

Odometer::Odometer()

{

  init();

}

Odometer::Odometer(FuelGuage* inFuel, int inMileage)

{

  init();

  this->fuel = new FuelGuage(*inFuel);

  this->mileage = inMileage;

  this->milesSinceAddingFuel = 0;

}

void Odometer::init()

{

  fuel = new FuelGuage();

  mileage = 0;

  milesSinceAddingFuel = 0;

}

FuelGuage* Odometer::getFuelGuage()

{

  return fuel;

}

int Odometer::getMileage()

{

  return mileage;

}

void Odometer::addMile()

{

  if(mileage < 999999)

  {

      mileage++;

      milesSinceAddingFuel++;

  }

  else

  {

      mileage = 0;

      milesSinceAddingFuel++;

  }

  if((milesSinceAddingFuel % 24) == 0)

  {

      fuel->burnFuel();

  }

}

void Odometer::resetMiles()

{

  milesSinceAddingFuel = 0;

}

Odometer::~Odometer()

{

  delete fuel;

}

Filename: Odometer.h

#ifndef ODOMETER_H

#define ODOMETER_H

#include "FuelGuage.h"

class Odometer

{

private:

  void init();

  int mileage;

  int milesSinceAddingFuel;

  FuelGuage* fuel;

public:

  Odometer();

  Odometer(FuelGuage* inFuel, int inMileage);

  FuelGuage* getFuelGuage();

  int getMileage();

  void addMile();

  void resetMiles();

  ~Odometer();

};

#endif

6 0
3 years ago
Can race condition happen in monolithic memcached. <br><br> a. True <br> b. False
erica [24]

Answer:

True

Explanation:

It is TRUE that race condition happens in monolithic Memcached. This is evident in that in a python language, where Memcached "gets" and "set" function tends to turn to a race condition if for example the two functions are used together to accomplish similar things like locking given that it is not atomic.

Hence, in this case, the correct answer is TRUE

8 0
3 years ago
Please help me I’m having difficulty issues I paid for the free trial for brainly, I messed up and didn’t cancel in time because
Sholpan [36]

Answer:

I would email this apps customer service or contact apple customer service I hope you are able to find a way to fix it!

Explanation:

The email is

8 0
3 years ago
True or false: if we’re short side the subject in our composed frame, we have given the subject the maximum amount of “lead room
denis-greek [22]
I think it’s false I’m not to sure
3 0
3 years ago
Other questions:
  • ____ deals with ensuring that data is protected against unauthorized access, and if the data are accessed by an authorized user,
    10·1 answer
  • If you wanted to buy a house that cost $150,000 and you knew you needed a down payment of five percent, how much would you need
    8·1 answer
  • What is Server Message Block (SMB) used for in Windows and can a hacker still damage a network using SMB?
    9·2 answers
  • An administrator is helping a user connect a smartphone to a tablet via Bluetooth. What should the administrator do first?
    6·1 answer
  • In Windows, which menu allows you to view file characteristics?
    14·1 answer
  • Which search engine does not track users? Choose the answer.
    10·2 answers
  • People who enjoy working with their hands might enjoy a career as a/an
    9·1 answer
  • Someone please help will mark as brainliest
    8·2 answers
  • Please help……Your friend is taking images from all over the internet without giving credit to the sources. He tells you that it’
    6·1 answer
  • True of false that the memory of laptop is normally measured in kilobytes
    6·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!