Starting Out with C++ from Control Structures to Objects (9th Edition)
9th Edition
ISBN: 9780134498379
Author: Tony Gaddis
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Concept explainers
Question
Chapter 18, Problem 3PC
Program Plan Intro
Linked List Copy Constructor
Program Plan:
“IntList.h”:
- Include the required specifications into the program.
- Define a class named “IntList”.
- Declare the member variables “value” and “*next” in structure named “ListNode”.
- Declare the constructor, copy constructor, destructor, and member functions in the class.
“IntList.cpp”:
- Include the required header files into the program.
- Define a copy constructor named “IntList()” which takes an address of object for the “IntList” class as “const”.
- Declare a structure pointer variable “nodePtr” and initialize it to be “nullptr”.
- Assign “obj.head” value into the received variable “nodePtr”.
- Make a “while” loop to copy the received values into “nodePtr”.
- Make a call to “appendNode()” to insert values to “nodePtr” and initialize address of “next” into “nodePtr”.
- Define a function named “appendNode()” to insert the node at end of the list.
- Declare the structure pointer variables “newNode” and “dataPtr” for the structure named “ListNode”.
- Assign the value “num” to the variable “newNode” and assign null to the variable “newNode”.
- Using “if…else” condition check whether the list is empty or not, if the “head” is empty then make a new node into “head” pointer. Otherwise, make a loop to find last node in the loop.
- Assign the value of “dataPtr” into the variable “newNode”.
- Define a function named “display()” to print the values in the list.
- Declare the structure pointer “dataPtr” for the structure named “ListNode”.
- Initialize the variable “dataPtr” with the “head” pointer.
- Make a loop “while” to display the values of the list.
- Define a function named “insertNode()” to insert a value into the list.
- Declare the structure pointer variables “newNode”, “dataPtr”, and “prev” for the structure named “ListNode”.
- Make a “newNode” value into the received variable value “num”.
- Use “if…else” condition to check whether the list is empty or not.
- If the list is empty then initialize “head” pointer with the value of “newNode” variable.
- Otherwise, make a “while” loop to test whether the “num” value is less than the list values or not.
- Use “if…else” condition to initialize the value into list.
- Define a function named “deleteNode()” to delete a value from the list.
- Declare the structure pointer variables “dataPtr”, and “prev” for the structure named “ListNode”.
- Use “if…else” condition to check whether the “head” value is equal to “num” or not.
- Initialize the variable “dataPtr” with the value of the variable “head”.
- Remove the value using “delete” operator and reassign the “head” value into the “dataPtr”.
- If the “num” value not equal to the “head” value, then define the “while” loop to assign the “dataPtr” into “prev”.
- Use “if” condition to delete the “prev” pointer.
- Define the destructor to destroy the list values from the memory.
- Declare the structure pointer variables “dataPtr”, and “nextNode” for the structure named “ListNode”.
- Initialize the variable “dataPtr” with the “head” pointer.
- Define a “while” loop to make the links of node into “nextNode” and remove the node using “delete” operator.
“Main.cpp”:
- Include the required header files into the program.
- Declare an object named “obj” for the class “IntList”.
- Make a call to functions for insert and append operations.
- Make a call to the “print” function to display the list on the screen.
- Declare another object “obj1” and pass the “obj” as argument for copy constructor.
- Make a call to the “print” function to display the copied list on the screen.
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
Nearest smaller element
def nearest_smaller(items):
Given a list of integer items, create and return a new list of the same length but where each element has been replaced with the nearest element in the original list whose value is smaller. If no smaller elements exist because that element is the minimum of the original list, the element in the result list should remain as that same minimum element.If there exist smaller elements equidistant in both directions, you must resolve this by using the smaller of these two elements. This again makes the expected results unique for every possible value of items, which is necessary for the automated testing framework to work at all. Being permissive in what you accept while being restrictive in what you emit is a pretty good principle to follow in all walks of life, not just in programming.
items
Expected result
[42, 42, 42]
[42, 42, 42]
[42, 1, 17]
[1, 1, 1]
[42, 17, 1]
[17, 1, 1]
[6, 9, 3, 2]
[3, 3, 2, 2]
[5, 2, 10, 1, 13, 15,…
After a tuple is created, its items can be changed.
True
False
A tuple's items can be access by square brackets, similar to lists.
True
False
Nearest smaller element
def nearest_smaller(items):
Given a list of integer itema, create and return a new list of the same length but where each
element has been replaced with the nearest element in the original list whose value is smaller. If no
smaller elements exist because that element is the minimum of the original list, the element in the
result list should remain as that same minimum element.
If there exist smaller elements equidistant in both directions, you must resolve this by using the
smaller of these two elements. This again makes the expected results unique for every possible
value of items, which is necessary for the automated testing framework to work at all. Being
permissive in what yvou accept while being restrictive in what you emit is a pretty good principle to
follow in all walks of life, not just in programming.
Expected result
items
[42, 42, 421
[42, 42, 42]
[42, 1, 17]
(1, 1, 1]
[42, 17, 1]
[17, 1, 1]
[6, 9, 3, 2]
[3, 3, 2, 2]
[5, 2, 10, 1, 13, 15, 14, 5,
11,…
Chapter 18 Solutions
Starting Out with C++ from Control Structures to Objects (9th Edition)
Ch. 18.1 - Prob. 18.1CPCh. 18.1 - Prob. 18.2CPCh. 18.1 - Prob. 18.3CPCh. 18.1 - Prob. 18.4CPCh. 18.2 - Prob. 18.5CPCh. 18.2 - Prob. 18.6CPCh. 18.2 - Prob. 18.7CPCh. 18.2 - Prob. 18.8CPCh. 18.2 - Prob. 18.9CPCh. 18.2 - Prob. 18.10CP
Ch. 18 - Prob. 1RQECh. 18 - Prob. 2RQECh. 18 - Prob. 3RQECh. 18 - Prob. 4RQECh. 18 - Prob. 5RQECh. 18 - Prob. 6RQECh. 18 - Prob. 7RQECh. 18 - Prob. 8RQECh. 18 - Prob. 9RQECh. 18 - Prob. 10RQECh. 18 - Prob. 11RQECh. 18 - Prob. 12RQECh. 18 - Prob. 13RQECh. 18 - Prob. 14RQECh. 18 - Prob. 15RQECh. 18 - Prob. 16RQECh. 18 - Prob. 17RQECh. 18 - Prob. 18RQECh. 18 - Prob. 19RQECh. 18 - Prob. 20RQECh. 18 - Prob. 21RQECh. 18 - Prob. 22RQECh. 18 - Prob. 23RQECh. 18 - Prob. 24RQECh. 18 - Prob. 25RQECh. 18 - T F The programmer must know in advance how many...Ch. 18 - T F It is not necessary for each node in a linked...Ch. 18 - Prob. 28RQECh. 18 - Prob. 29RQECh. 18 - Prob. 30RQECh. 18 - Prob. 31RQECh. 18 - Prob. 32RQECh. 18 - Prob. 33RQECh. 18 - Prob. 34RQECh. 18 - Prob. 35RQECh. 18 - Prob. 1PCCh. 18 - Prob. 2PCCh. 18 - Prob. 3PCCh. 18 - Prob. 4PCCh. 18 - Prob. 5PCCh. 18 - Prob. 6PCCh. 18 - Prob. 7PCCh. 18 - List Template Create a list class template based...Ch. 18 - Prob. 9PCCh. 18 - Prob. 10PCCh. 18 - Prob. 11PCCh. 18 - Prob. 12PCCh. 18 - Prob. 13PCCh. 18 - Prob. 14PCCh. 18 - Prob. 15PC
Knowledge Booster
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
- class Node: def __init__(self, e, n): self.element = e self.next = n class LinkedList: def __init__(self, a): # Design the constructor based on data type of a. If 'a' is built in python list then # Creates a linked list using the values from the given array. head will refer # to the Node that contains the element from a[0] # Else Sets the value of head. head will refer # to the given LinkedList # Hint: Use the type() function to determine the data type of a self.head = None # To Do # Count the number of nodes in the list def countNode(self): # To Do # Print elements in the list def printList(self): # To Do # returns the reference of the Node at the given index. For invalid index return None. def nodeAt(self, idx): # To Doarrow_forwardMusic Player – Songs in music player are linked to previous and next song. You can play songs from either starting or ending of the list. Write an algorithm for the above problem and analyse the efficiency of the algorithm.arrow_forwardjava data structurearrow_forward
- Assume that my_list references a list. Write a statement that converts it to a tuplearrow_forwardcard_t * moveCardBack (card t *head); The moveCardBack function will take the card in front of the pile and place it in the back. In coding terms, you are taking the head of the linked list and moving it to the end. The function has one parameter which is the head of the linked list. After moving the card to the back, the function returns the new head of the linked list.arrow_forwardCircular linked list is a form of the linked list data structure where all nodes are connected as in a circle, which means there is no NULL at the end. Circular lists are generally used in applications which needs to go around the list repeatedly. struct Node * insertTONull (struct Node *last, int data) // This function is only for empty list 11 5 15 struct Node insertStart (struct Node +last, int data) In this question, you are going to implement the insert functions of a circular linked list in C. The Node struct, print function and the main function with its output is given below: struct Node { int data; struct Node *next; }; struct Node insertEnd (struct Node *last, int data) void print(struct Node *tailNode) struct Node *p; if (tailNode -- NULL) struct Node * insertSubseq (struct Node *last, int data, int item) puts("Empty"); return; p - tailNode → next; do{ printf("%d ",p→data); p - p > next; while(p !- tailNode →next); void main(void) { struct Node *tailNode - NULL; tailNode -…arrow_forward
- Lab Goal : This lab was designed to teach you more about list processing and algorithms.Lab Description : Write a program that will search through a list to find the smallest number and the largest number. The program will return the average the largest and smallest numbers. You must combine variables, ifs, and a loop to create a working method. There will always be at least one item in the list.arrow_forwardflip_matrix(mat:list)->list You will be given a single parameter a 2D list (A list with lists within it) this will look like a 2D matrix when printed out, see examples below. Your job is to flip the matrix on its horizontal axis. In other words, flip the matrix horizontally so that the bottom is at top and the top is at the bottom. Return the flipped matrix. To print the matrix to the console: print('\n'.join([''.join(['{:4}'.format(item) for item in row]) for row in mat])) Example: Matrix: W R I T X H D R L G L K F M V G I S T C W N M N F Expected: W N M N F G I S T C L K F M V H D R L G W R I T X Matrix: L C S P Expected: S P L C Matrix: A D J A Q H J C I Expected: J C I A Q H A D Jarrow_forwardID: A Name: Multiple Response Identify one or more choices that best complete the statement or answer the question. 10. The following code segment is intended to remove all duplicate elements in the list myList. The procedure does not work as intended. jt LENGTH(myList) REPEAT UNTIL(j = 1) %3D } IF(myList[j] = myList[j - 1]) %3D } REMOVE (myList, j) { j+j-1 { For which of the following contents of myList will the procedure NOT produce the intended results? a. [30, 30, 30, 10, 20, 20] b. [10, 10, 20, 20, 10, 10] c. [50, 50, 50, 50, 50, 50] d. [30, 50, 40, 10, 20, 40]arrow_forward
- check_equivalency(tokens): Takes a list as input. Returns True if the list contains three elements, the second element is an equals sign ('='), and the first and third elements are equal to each other. Returns False otherwise.arrow_forwardnumUniqueValues ♡ Language/Type: Related Links: Java Set collections List Write a method named numUnique Values that accepts a List of integers as a parameter and returns the number of unique integer values in the list. For example, if a list named 1 contains the values [3, 7, 3, -1, 2, 3, 7, 2, 15, 15], the call of numUniqueValues (1) should return 5. If passed the empty list, you should return 0. Use a Set as auxiliary storage to help you solve this problem. Do not modify the list passed in. 6 7 8 9 10 Method: Write a Java method as described, not a complete program or class. 12345arrow_forwardLab Goal : This lab was designed to teach you more about list processing and algorithms.Lab Description : Write a program that will search a list to find the first odd number. If an odd number is found, then find the first even number following the odd number. Return the distance between the first odd number and the LAST even number. Return -1 if no odd numbers are found or there are no even numbers following an odd numberarrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education