Problem Solving with C++ plus MyProgrammingLab with Pearson eText-- Access Card Package (9th Edition)
Problem Solving with C++ plus MyProgrammingLab with Pearson eText-- Access Card Package (9th Edition)
9th Edition
ISBN: 9780133862218
Author: Walter Savitch
Publisher: PEARSON
bartleby

Videos

Textbook Question
Book Icon
Chapter 13, Problem 1P

The following program creates a linked list with three names:

  #include <iostream>

  #include <string>

  using namespace std;

  struct Node

  {

  string name;

  Node *link;

  };

  typedef Node* NodePtr;

  int main()

  {

  NodePtr listPtr, tempPtr;

  listPtr = new Node;

  listPtr–>name = “Emily”;

  tempPtr = new Node;

  tempPtr–>name = “James”;

  listPtr–>link = tempPtr;

  tempPtr–>link = new Node;

  tempPtr = tempPtr–>link;

  tempPtr–>name = “Joules”;

  tempPtr–>link = NULL;

  return 0;

  }

Add code to the main function that:

  1. a. Outputs in order all names in the list.
  2. b. Inserts the name “Joshua” in the list after “James” then outputs the modified list.
  3. c. Deletes the node with “Joules” then outputs the modified list,
  4. d. Deletes all nodes in the list.
Expert Solution & Answer
Check Mark
Program Plan Intro

Creation of program to produce a linked list and perform operations

Program Plan:

  • Define a structure “Node” with member variable and link to another node.
  • Define a method “displayList()” to display nodes present in the list.
    • Perform a loop operation until list reaches null.
    • Display name of node and move to next node.
    • Continue this process until list reaches null.
  • Define a method “insertNameAfter()” to insert a name after a particular name.
    • Perform a loop operation until list reaches null.
    • Compare each word with given name.
    • If required name is reached, insert new name after the given name.
    • Update the next node pointer.
  • Define a method “deleteNameList()” to delete a particular name in list.
    • Perform a loop operation until list reaches null.
    • Compare each word with given name.
    • If required name is reached, delete name.
    • Update the next node pointer.
  • Define a method “deleteAllNodes()” to delete all nodes in list.
    • Declare variables that are required for program.
    • Perform a loop operation until list reaches null.
    • Assign “head” to a temporary variable.
    • Move to next node.
    • Delete the “head” of linked list.
  • Define a main method to perform operations on list.
    • Declare variables that are required for program.
    • Define nodes and assign values.
    • Call method “displayList()” to display nodes in list.
    • Call method “insertNameAfter()” to insert a name after a particular name.
    • Call method “deleteNameList()” to delete a particular name in list.
    • Call method “deleteAllNodes()” to delete all nodes in list.
Program Description Answer

Program Description:

The following C++ program describes about creation of program to create a linked list and perform operations on list.

Explanation of Solution

Program:

//Include libraries

#include <iostream>

#include <string>

//Use namespace

using namespace std;

//Define a structure

struct Node

{

//Declare member variable

string name;

//Declare link

Node *link;

};

//Define instance

typedef Node* NodePtr;

//Define a method displayList()

void displayList(NodePtr head)

{

//Loop until empty

while(head!=NULL)

{

//Display value

cout<<head->name<<" ";

//Move to next node

head=head->link;

}

//New line

cout<<endl;

}

//Define method insertNameAfter()

void insertNameAfter(NodePtr head,string sName, string newName)

{

//Declare variable

NodePtr temp;

//Create instance of node

temp=new Node;

//Assign value

temp->name=newName;

//Assign null value

temp->link=NULL;

//Loop until it reaches null

while(head!=NULL)

{

//If condition satisfies

if(head->name.compare(sName)==0)

{

//Assign value

temp->link=head->link;

//Assign value

head->link=temp;

//Break

break;

}

//Assign value

head=head->link;

}

}

//Define method deleteNameList()

void deleteNameList(NodePtr head,string sName)

{

//Declare variable

NodePtr prev=NULL;

//Loop until it reaches null

while(head!=NULL)

{

//If condition satisfies

if(head->name.compare(sName)==0)

{

//Assign value

prev->link=head->link;

//Delete

delete head;        

//Break

break;

}

//Assign value

prev=head;

//Assign value

head=head->link;

}

}

//Define method deleteAllNodes()

void deleteAllNodes(NodePtr head)

{

//Declare variable

NodePtr temp;

//Loop

while(head)

{

//Assign value

temp=head;

//Move to next value

head=head->link;

//Delete node

delete temp;   

}

}

//Define main method

int main()

{

//Declare variables

NodePtr listPtr,tempPtr;

//Create new instance

listPtr =new Node;

//Assign value

listPtr->name="Emily";

//Create new node

tempPtr=new Node;

//Assign value

tempPtr->name="James";

//Assign value

listPtr->link=tempPtr;

//Create new node

tempPtr->link=new Node;

//Move to next value

tempPtr=tempPtr->link;

//Assign value

tempPtr->name="Joules";

//Assign null value

tempPtr->link=NULL;

//Display message

cout<<"All Names in the list are: "<<endl;

//Call method displayList()

displayList(listPtr);

//Call method insertNameAfter()

insertNameAfter(listPtr,"James","Joshua");

//Display message

cout<<"Output modified list after Insert Joshua are:"<<endl;

//Call method displayList()

displayList(listPtr);

//Call method deleteNameList()

deleteNameList(listPtr,"Joules");

//Display message

cout<<"Output modified list after deleting Joshua are:"<<endl;

//Call method displayList()

displayList(listPtr);

//Call method deleteAllNodes()

deleteAllNodes(listPtr);

//Pause console window

system("pause");

//Return

return 0;

}

Sample Output

All Names in the list are:

Emily James Joules

Output modified list after Insert Joshua are:

Emily James Joshua Joules

Output modified list after deleting Joshua are:

Emily James Joshua

Press any key to continue . . .

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Part B Correct glucose +P G6P + H2O AG 13.8 kJ/mol [G6PH₂O] Kea glucose P ΔΟΜ e Note: in the biochemical standard state, the activity of H2O is assigned a value of 1 G6P (1) (0.005) (0.005) e 00831x310 G6P 0.000025 xe 36 1.2 107 M This very low concentration of the desired product would be unfavorable for glycolysis In fact, the reaction is coupled to ATP hydrolysis to give the overall reaction ATP glucose What is AG for the coupled reaction? glucose-6-phosphate Express your answer to three significant figures and include the appropriate units, AG= Value kJ mol Submit Previous Answers Request Answer ADP H
explain in detail thank you
Use a simple exponential smoothing Method to forecast one-quarter-ahead revenues for Home Depot. Refer to the Home Depot Quarterly.xlsx dataset Year and Quarter Homedepot sales 19811 8.010999978 19812 10.60699999 19813 13.71499997 19814 19.20899999 19821 25.60999996 19822 33.06299996 19823 28.727 19824 30.24599999 19831 42.99299991 19832 66.61299992 19833 64.08299995 19834 82.49499989 19841 95.87199998 19842 119.0679998 19843 100.4589999 19844 117.3799999 19851 145.0479999 19852 174.2389998 19853 177.7179999 19854 203.724 19861 222.619 19862 263.4329996 19863 251.5369997 19864 273.8729992 19871 333.9689999 19872 381.4429998 19873 364.2449999 19874 374 19881 446.5919991 19882 518.1589985 19883 509.9899998 19884 524.7729988 19891 641.5209999 19892 704.0249996 19893 699.7399998 19894 713.2489986 19901 880.855999 19902 990.3459988 19903 936.6119995 19904 1007.542 19911 1186.889999 19912 1352.792 19913…

Additional Engineering Textbook Solutions

Find more solutions based on key concepts
The ____________ is always transparent.

Web Development and Design Foundations with HTML5 (8th Edition)

Replace the leading system by an equivalent resultant force and couple moment acting at point A.

INTERNATIONAL EDITION---Engineering Mechanics: Statics, 14th edition (SI unit)

Sales Prediction The East Coast sales division of a company generates 62 percent of total sales. Based on that ...

Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)

Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Introduction to Linked List; Author: Neso Academy;https://www.youtube.com/watch?v=R9PTBwOzceo;License: Standard YouTube License, CC-BY
Linked list | Single, Double & Circular | Data Structures | Lec-23 | Bhanu Priya; Author: Education 4u;https://www.youtube.com/watch?v=IiL_wwFIuaA;License: Standard Youtube License