You are to complete a partial program incorporating a function DelOddCopEven that is to delete all odd-valued nodes and copy each even-valued node of a given list: ● The original order in which the remaining (even-valued) nodes must be preserved, with each original node and its duplicate appearing together. Algorithm should: ○ NOT destroy any of the originally even-valued node. ♯ This means that the originally even-valued nodes should be retained as part of the resulting list. ○ Destroy ONLY nodes that are originally odd-valued. ○ Create new nodes and copy data between nodes ONLY when duplicating originally even-valued nodes. ♯ Only ONE new node should be created for each originally even-valued node. ♯ Creating pointer-to-node's (to provide temporary storage for node addresses) does not constitute creating new nodes or copying of items. ○ NOT make any temporary copies of any of the data items (using any kind of data structures including but not limited to arrays, linked lists and trees). ♯ This means that the algorithm should largely involve the manipulation of pointers. ► Function must be iterative (NOT recursive) - use only looping construct(s), without the function calling itself (directly or indirectly). ► Function should not call any other functions to help in performing the task.
You are to complete a partial program incorporating a function DelOddCopEven that is to delete all odd-valued nodes and copy each even-valued node of a given list: ● The original order in which the remaining (even-valued) nodes must be preserved, with each original node and its duplicate appearing together. Algorithm should: ○ NOT destroy any of the originally even-valued node. ♯ This means that the originally even-valued nodes should be retained as part of the resulting list. ○ Destroy ONLY nodes that are originally odd-valued. ○ Create new nodes and copy data between nodes ONLY when duplicating originally even-valued nodes. ♯ Only ONE new node should be created for each originally even-valued node. ♯ Creating pointer-to-node's (to provide temporary storage for node addresses) does not constitute creating new nodes or copying of items. ○ NOT make any temporary copies of any of the data items (using any kind of data structures including but not limited to arrays, linked lists and trees). ♯ This means that the algorithm should largely involve the manipulation of pointers. ► Function must be iterative (NOT recursive) - use only looping construct(s), without the function calling itself (directly or indirectly). ► Function should not call any other functions to help in performing the task.
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
You are to complete a partial |
● | The original order in which the remaining (even-valued) nodes must be preserved, with each original node and its duplicate appearing together. |
○ | NOT destroy any of the originally even-valued node. |
♯ | This means that the originally even-valued nodes should be retained as part of the resulting list. |
○ | Destroy ONLY nodes that are originally odd-valued. |
○ | Create new nodes and copy data between nodes ONLY when duplicating originally even-valued nodes. |
♯ | Only ONE new node should be created for each originally even-valued node. |
♯ | Creating pointer-to-node's (to provide temporary storage for node addresses) does not constitute creating new nodes or copying of items. |
○ | NOT make any temporary copies of any of the data items (using any kind of data structures including but not limited to arrays, linked lists and trees). |
♯ | This means that the algorithm should largely involve the manipulation of pointers. |
► | Function must be iterative (NOT recursive) - use only looping construct(s), without the function calling itself (directly or indirectly). |
► | Function should not call any other functions to help in performing the task. |
#ifndef LLCP_INT_H
#define LLCP_INT_H
#include <iostream>
struct Node
{
int data;
Node *link;
};
int FindListLength(Node* headPtr);
bool IsSortedUp(Node* headPtr);
void InsertAsHead(Node*& headPtr, int value);
void InsertAsTail(Node*& headPtr, int value);
void InsertSortedUp(Node*& headPtr, int value);
bool DelFirstTargetNode(Node*& headPtr, int target);
bool DelNodeBefore1stMatch(Node*& headPtr, int target);
void ShowAll(std::ostream& outs, Node* headPtr);
void FindMinMax(Node* headPtr, int& minValue, int& maxValue);
double FindAverage(Node* headPtr);
void ListClear(Node*& headPtr, int noMsg = 0);
// prototype of DelOddCopEven of Assignment 5 Part 1
#endif
![passed test on empty list
=============
test case 1 of 1000000
initial: 6 7 5 3
ought2b: 6 6
outcome: 6 6
test case 2 of 1000000
initial: 6 29 1 27
ought2b: 6 6 2 2 2 2
outcome: 6 6 2 2 2 2
=====
test case 3 of 1000000
initial: 9
ought2b:
outcome:
test case 4 of 1000000
initial: 6 0 6
2
ought2b: 6 6
0
0 6
outcome: 6 6
0
0
6
test case 5 of 1000000
co co
initial: 1
ought2b: 8
outcome: 8 8 2
8 7
=======
8 2
6 2 2
62 2
=====
test case 40000 of 1000000
initial: 5 5 1
ought2b:
outcome:
9
20 2
2 0 0 22
0 0 2 2
2
test case 80000 of 1000000
initial: 2
ought2b: 2 2
outcome: 2 2
test case 120000 of 1000000
initial: 4 4 1 8
ought2b: 4 4 4 4 8 8
outcome: 4 4 4 4 88
644
=====
test case 160000 of 1000000
initial: 0 4
ought2b: 0 0
outcome: 0 0
4 6 6
4 6
6
====
test case 200000
of 1000000
initial: 1 7 0 3 7 7 3
ought2b: 0
outcome: 0 0
==
=====](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fa3dbb91f-777d-47b2-aa94-40b3e17142a5%2F71696224-ed9e-49f5-8d33-83a055a88fc2%2Fj9jdwah_processed.png&w=3840&q=75)
Transcribed Image Text:passed test on empty list
=============
test case 1 of 1000000
initial: 6 7 5 3
ought2b: 6 6
outcome: 6 6
test case 2 of 1000000
initial: 6 29 1 27
ought2b: 6 6 2 2 2 2
outcome: 6 6 2 2 2 2
=====
test case 3 of 1000000
initial: 9
ought2b:
outcome:
test case 4 of 1000000
initial: 6 0 6
2
ought2b: 6 6
0
0 6
outcome: 6 6
0
0
6
test case 5 of 1000000
co co
initial: 1
ought2b: 8
outcome: 8 8 2
8 7
=======
8 2
6 2 2
62 2
=====
test case 40000 of 1000000
initial: 5 5 1
ought2b:
outcome:
9
20 2
2 0 0 22
0 0 2 2
2
test case 80000 of 1000000
initial: 2
ought2b: 2 2
outcome: 2 2
test case 120000 of 1000000
initial: 4 4 1 8
ought2b: 4 4 4 4 8 8
outcome: 4 4 4 4 88
644
=====
test case 160000 of 1000000
initial: 0 4
ought2b: 0 0
outcome: 0 0
4 6 6
4 6
6
====
test case 200000
of 1000000
initial: 1 7 0 3 7 7 3
ought2b: 0
outcome: 0 0
==
=====
![_1234567898123456789281223242525728298123456劲89 ¥42²4 45 46 7 8 9 58 123456859 68
10
20
30
40
41
43
47
48
49
50
57
60
#include "nodes_LLOLL.h"
#include "cnPtrQueue.h"
#include <iostream>
using namespace std;
namespace CS3358_SP2023_A5P2
{
// do breadth-first (level) traversal and print data
void ShowA11_BF (PNode* pListHead, ostream& outs)
// to be implemented (part of assignment)
{
}
void
Destroy_clist (CNode*& cListHead)
int count = 0;
CNode* cNodePtr = cListHead;
while (cListHead != 0)
{
{
}
cout << "Dynamic memory for " << count << " CNodes freed"
<< endl;
void Destroy_pList (PNode* & pListHead)
cListHead = cListHead->link;
delete cNodePtr;
cNodePtr = cListHead;
++count;
int count = 0;
PNode* pNodePtr
pListHead;
while (plistHead != 0)
{
}
plistHead
pListHead->link;
Destroy_clist (pNodePtr->data);
}
delete pNodePtr;
pNodePtr = plistHead;
++count;
cout << "Dynamic memory for " << count << " PNodes freed"
<< endl;
=
// do depth-first traversal and print data
void ShowA11_DF (PNode* plistHead, ostream& outs)
=
while (plistHead != 0)
{
{
CNode* cListHead pListHead->data;
while (clistHead != 0)
}
plistHead
outs <<clistHead->data <<
cListHead = clistHead->link;
=
pListHead->link;](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fa3dbb91f-777d-47b2-aa94-40b3e17142a5%2F71696224-ed9e-49f5-8d33-83a055a88fc2%2F87vhl7m_processed.png&w=3840&q=75)
Transcribed Image Text:_1234567898123456789281223242525728298123456劲89 ¥42²4 45 46 7 8 9 58 123456859 68
10
20
30
40
41
43
47
48
49
50
57
60
#include "nodes_LLOLL.h"
#include "cnPtrQueue.h"
#include <iostream>
using namespace std;
namespace CS3358_SP2023_A5P2
{
// do breadth-first (level) traversal and print data
void ShowA11_BF (PNode* pListHead, ostream& outs)
// to be implemented (part of assignment)
{
}
void
Destroy_clist (CNode*& cListHead)
int count = 0;
CNode* cNodePtr = cListHead;
while (cListHead != 0)
{
{
}
cout << "Dynamic memory for " << count << " CNodes freed"
<< endl;
void Destroy_pList (PNode* & pListHead)
cListHead = cListHead->link;
delete cNodePtr;
cNodePtr = cListHead;
++count;
int count = 0;
PNode* pNodePtr
pListHead;
while (plistHead != 0)
{
}
plistHead
pListHead->link;
Destroy_clist (pNodePtr->data);
}
delete pNodePtr;
pNodePtr = plistHead;
++count;
cout << "Dynamic memory for " << count << " PNodes freed"
<< endl;
=
// do depth-first traversal and print data
void ShowA11_DF (PNode* plistHead, ostream& outs)
=
while (plistHead != 0)
{
{
CNode* cListHead pListHead->data;
while (clistHead != 0)
}
plistHead
outs <<clistHead->data <<
cListHead = clistHead->link;
=
pListHead->link;
Expert Solution
![](/static/compass_v2/shared-icons/check-mark.png)
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 3 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
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.Recommended textbooks for you
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
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)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
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)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education