When I was compling my code this is the output I got. yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data And this is what the output is supposed to looked like Dynamic memory for 0 CNodes freed Dynamic memory for 1 PNodes freed 11 11 Dynamic memory for 1 CNodes freed Dynamic memory for 1 PNodes freed 11 12 13 14 11 12 13 14 Dynamic memory for 4 CNodes freed Dynamic memory for 1 PNodes freed 21 22 23 24 21 22 23 24 Dynamic memory for 0 CNodes freed Dynamic memory for 4 CNodes freed Dynamic memory for 2 PNodes freed 11 12 13 14 11 12 13 14 Dynamic memory for 4 CNodes freed Dynamic memory for 0 CNodes freed Dynamic memory for 2 PNodes freed 11 12 13 14 21 41 42 11 21 41 12 42 13 14 Dynamic memory for 4 CNodes freed Dynamic memory for 1 CNodes freed Dynamic memory for 0 CNodes freed Dynamic memory for 2 CNodes freed Dynamic memory for 4 PNodes freed 21 22 23 24 31 51 52 21 31 51 22 52 23 24 Dynamic memory for 0 CNodes freed Dynamic memory for 4 CNodes freed Dynamic memory for 1 CNodes freed Dynamic memory for 0 CNodes freed Dynamic memory for 2 CNodes freed Dynamic memory for 5 PNodes freed #ifndef NODES_LLOLL_H #define NODES_LLOLL_H #include // for ostream namespace CS3358_SP2023_A5P2 { // child node struct CNode { int data; CNode* link; }; // parent node struct PNode { CNode* data; PNode* link; }; // toolkit functions for LLoLL based on above node definitions void Destroy_cList(CNode*& cListHead); void Destroy_pList(PNode*& pListHead); void ShowAll_DF(PNode* pListHead, std::ostream& outs); void ShowAll_BF(PNode* pListHead, std::ostream& outs); } #endif #ifndef CN_PTR_QUEUE_H #define CN_PTR_QUEUE_H #include // for size_t #include // for STL stack template #include "nodes_LLoLL.h" // for CNode namespace CS3358_SP2023_A5P2 { class cnPtrQueue { public: typedef std::size_t size_type; cnPtrQueue(); bool empty() const; size_type size() const; // returns # of items in queue CNode* front(); void push(CNode* cnPtr); void pop(); private: std::stack inStack; std::stack outStack; size_type numItems; // # of items in queue }; } #endif #include "cnPtrQueue.h" #include using namespace std; namespace CS3358_SP2023_A5P2 { cnPtrQueue::cnPtrQueue() : numItems(0) { } bool cnPtrQueue::empty() const { return numItems == 0; } cnPtrQueue::size_type cnPtrQueue::size() const { return numItems; } CNode* cnPtrQueue::front() { assert(!empty()); if (outStack.empty()) { // transfer items from inStack to outStack while (!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } return outStack.top(); } void cnPtrQueue::push(CNode* cnPtr) { inStack.push(cnPtr); ++numItems; } void cnPtrQueue::pop() { assert(!empty()); if (outStack.empty()) { // transfer items from inStack to outStack while (!inStack.empty()) { outStack.push(inStack.top()); inStack.pop(); } } outStack.pop(); --numItems; } } #include "nodes_LLoLL.h" #include "cnPtrQueue.h" #include using namespace std; namespace CS3358_SP2023_A5P2 { // do breadth-first (level) traversal and print data void ShowAll_BF(PNode* pListHead, ostream& outs) { cnPtrQueue queue; CNode* currentNode; queue.push(pListHead->data); while (!queue.empty()) { currentNode = queue.front(); queue.pop(); if (currentNode->link != 0) { queue.push(currentNode->link); } if (currentNode->data != 0) { outs << currentNode->data << " "; queue.push(currentNode->link); } } outs << endl; } }
When I was compling my code this is the output I got.
yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data (int): Add more cList data? (n = no, others = yes) Enter cList data
And this is what the output is supposed to looked like
Dynamic memory for 0 CNodes freed
Dynamic memory for 1 PNodes freed
11
11
Dynamic memory for 1 CNodes freed
Dynamic memory for 1 PNodes freed
11 12 13 14
11 12 13 14
Dynamic memory for 4 CNodes freed
Dynamic memory for 1 PNodes freed
21 22 23 24
21 22 23 24
Dynamic memory for 0 CNodes freed
Dynamic memory for 4 CNodes freed
Dynamic memory for 2 PNodes freed
11 12 13 14
11 12 13 14
Dynamic memory for 4 CNodes freed
Dynamic memory for 0 CNodes freed
Dynamic memory for 2 PNodes freed
11 12 13 14 21 41 42
11 21 41 12 42 13 14
Dynamic memory for 4 CNodes freed
Dynamic memory for 1 CNodes freed
Dynamic memory for 0 CNodes freed
Dynamic memory for 2 CNodes freed
Dynamic memory for 4 PNodes freed
21 22 23 24 31 51 52
21 31 51 22 52 23 24
Dynamic memory for 0 CNodes freed
Dynamic memory for 4 CNodes freed
Dynamic memory for 1 CNodes freed
Dynamic memory for 0 CNodes freed
Dynamic memory for 2 CNodes freed
Dynamic memory for 5 PNodes freed
#ifndef NODES_LLOLL_H
#define NODES_LLOLL_H
#include <iostream> // for ostream
namespace CS3358_SP2023_A5P2
{
// child node
struct CNode
{
int data;
CNode* link;
};
// parent node
struct PNode
{
CNode* data;
PNode* link;
};
// toolkit functions for LLoLL based on above node definitions
void Destroy_cList(CNode*& cListHead);
void Destroy_pList(PNode*& pListHead);
void ShowAll_DF(PNode* pListHead, std::ostream& outs);
void ShowAll_BF(PNode* pListHead, std::ostream& outs);
}
#endif
#ifndef CN_PTR_QUEUE_H
#define CN_PTR_QUEUE_H
#include <cstdlib> // for size_t
#include <stack> // for STL stack template
#include "nodes_LLoLL.h" // for CNode
namespace CS3358_SP2023_A5P2
{
class cnPtrQueue
{
public:
typedef std::size_t size_type;
cnPtrQueue();
bool empty() const;
size_type size() const; // returns # of items in queue
CNode* front();
void push(CNode* cnPtr);
void pop();
private:
std::stack<CNode*> inStack;
std::stack<CNode*> outStack;
size_type numItems; // # of items in queue
};
}
#endif
#include "cnPtrQueue.h"
#include <cassert>
using namespace std;
namespace CS3358_SP2023_A5P2
{
cnPtrQueue::cnPtrQueue() : numItems(0)
{
}
bool cnPtrQueue::empty() const
{
return numItems == 0;
}
cnPtrQueue::size_type cnPtrQueue::size() const
{
return numItems;
}
CNode* cnPtrQueue::front()
{
assert(!empty());
if (outStack.empty())
{
// transfer items from inStack to outStack
while (!inStack.empty())
{
outStack.push(inStack.top());
inStack.pop();
}
}
return outStack.top();
}
void cnPtrQueue::push(CNode* cnPtr)
{
inStack.push(cnPtr);
++numItems;
}
void cnPtrQueue::pop()
{
assert(!empty());
if (outStack.empty())
{
// transfer items from inStack to outStack
while (!inStack.empty())
{
outStack.push(inStack.top());
inStack.pop();
}
}
outStack.pop();
--numItems;
}
}
#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 ShowAll_BF(PNode* pListHead, ostream& outs)
{
cnPtrQueue queue;
CNode* currentNode;
queue.push(pListHead->data);
while (!queue.empty())
{
currentNode = queue.front();
queue.pop();
if (currentNode->link != 0)
{
queue.push(currentNode->link);
}
if (currentNode->data != 0)
{
outs << currentNode->data << " ";
queue.push(currentNode->link);
}
}
outs << endl;
}
}
![38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 {
57
58
59
60
61
62
S
63
64
65
66
67
68
69
70
1 72 73 74 75
71
V
72 ✓
}
}
cin>>oneInt;
CNode* cNodePtr = new CNode;
cNodePtr->data = oneInt;
cNodePtr->link = 0;
if (cListTail == 0)
cListHead = cListTail = cNodePtr;
else
{
cListTail->link = cNodePtr;
cListTail = cNodePtr;
}
if (argc < 2)
cout << "Add more cList data? (n = no, others = yes)";
cin >> reply;
void Build_pList(int argc, PNode*& pListHead)
char reply;
PNode* pListTail = pListHead;
if (argc < 2)
cout << "Add cList to pList? (n = no, others = yes)";
cin >> reply;
while (reply != 'n' && reply != 'N')
{
CNode* cListHead = 0;
Build_cList(argc, cListHead);
PNode* pNodePtr = new PNode;
pNodePtr->data = cListHead;
pNodePtr->link = 0;
== 0)
if (pListTail
pListHead = pListTail = pNodePtr;
else
{
pListTail->link
pListTail = pNodePtr;
=
pNodePtr;](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fb51b654d-3a22-424d-90a5-d3d04b635cc6%2F1ccd6072-6cb8-4902-a944-a5b6b3edffd1%2Fzvvqt1n_processed.png&w=3840&q=75)
![1 #include "nodes_LLOLL.h"
2 #include <cstdlib>
3 using namespace std;
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using namespace CS3358_SP2023_A5P2;
34
35
36
37
void Build_cList(int argc, CNode*& cListHead);
void Build_pList(int argc, PNode*& pListHead);
int main(int argc, char* argv[])
{
PNode* head LLOLL = 0;
char reply;
do
}
{
Build_pList(argc, head_LLOLL);
ShowAll_DF (head_LLOLL, cout);
cout << endl;
ShowAll BF(head_LLOLL, cout);
cout << endl;
Destroy_pList (head_LLOLL);
24
25
26
27
28
29
30 void Build_cList(int argc, CNode* & cListHead)
31 {
32
33
if (argc < 2)
cout << "Another? (n = no, others = yes)";
cin >> reply;
}
while (reply != 'n' && reply != 'N');
return EXIT_SUCCESS;
int oneInt;
char reply;
CNode* cListTail = cListHead;
if (argc < 2)
cout << "Add cList data? (n = no, others = yes) ";
cin >> reply;](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fb51b654d-3a22-424d-90a5-d3d04b635cc6%2F1ccd6072-6cb8-4902-a944-a5b6b3edffd1%2Flixk9pg_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 1 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)