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. #ifndef LLCP_INT_H #define LLCP_INT_H #include struct Node { int data; Node *link; }; bool DelOddCopEven(Node* headPtr); 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 bool DelOddCopEven(Node* headPtr) { }
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. |
○ | 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;
};
bool DelOddCopEven(Node* headPtr);
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
bool DelOddCopEven(Node* headPtr) {
}
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images