i have test review project for my C++ can i get some help plz // CS 250 test rev
ID: 3573076 • Letter: I
Question
i have test review project for my C++ can i get some help plz
// CS 250 test review
#include <iostream>
using namespace::std;
// single linked list without classes, direct access to node fields without classes
struct Llist {
Llist * next;
int data;
};
void print(const Llist * start)
{
// print all values, one per line
if (start == nullptr) return;
cout << start->data << endl; // needs more code
return;
}
bool isSorted(const Llist * start)
{
while (start != nullptr)
{
if (start > start->next)
{
return false;
}
start = start->next;
}
return true;
}
void addFront(Llist * & start, int value)
{
Llist *walker = start;
Llist *p = new Llist;
p->data = value;
p->next = nullptr;
if (walker == nullptr)
{
walker = p;
walker = nullptr;
p = nullptr;
}
walker = p;
walker = nullptr;
p = nullptr;
/*// dummy code
start = new Llist;
start->data = value;
start->next = nullptr;
*/
}
void addBack(Llist * & start, int value)
{
Llist *walker = start;
Llist *p = new Llist;
p->data = value;
p->next = nullptr;
if (walker == nullptr)
{
walker->next = p;
walker = nullptr;
p = nullptr;
}
while (walker != nullptr)
{
walker = walker->next;
}
walker->next = p;
p->next = nullptr;
walker = nullptr;
p = nullptr;
}
void moveFrontToLast(Llist * & start)
{
Llist *walker = start;
Llist *p = start;
p->next = nullptr;
start = start->next;
while (walker != nullptr)
{
walker = walker->next;
}
walker->next = p;
walker = nullptr;
p = nullptr;
}
void moveLastToFront(Llist * & start)
{
Llist *walker = start;
Llist *p = new Llist;
p->next = nullptr;
while (walker != nullptr)
{
walker = walker->next;
}
p->data = walker->data;
p->next = nullptr;
start = p;
walker = nullptr;
p = nullptr;
}
void returnAllMemory(Llist * & start)
{
// dummy code
if (start == nullptr) return;
cout << "returning memory at address " << start
<< " containing " << start->data << endl;
start->next = nullptr;
delete start;
start = nullptr;
}
// double linked list as a class, access node fields through DlistNode object
class DlistNode // double linked list node class
{
public:
DlistNode * getNext() const
{
return next;
}
DlistNode * getPrev() const
{
return prev;
}
int getData() const
{
return info;
}
void setNext(DlistNode * v)
{
next = v;
}
void setPrev(DlistNode * v)
{
prev = v;
}
void setData(int v)
{
info = v;
}
private:
DlistNode * next;
int info;
DlistNode * prev;
};
class Dlist // double linked list class
{
public:
bool isSorted() const
{
return true;
}
void print() const
{
if (start == nullptr) return;
cout << start->getData() << endl;
// needs more code
}
void addFront(int v)
{
DlistNode * walker = start;
if (walker == nullptr)
{
}
/*// dummy code
start = new DlistNode;
start->setData(v);
start->setNext(nullptr);
start->setPrev(nullptr);
*/
}
void addBack(int v)
{
}
void moveFrontToLast()
{
}
void moveLastToFront()
{
}
~Dlist() // return all heap memory
{ // dummy code
if (start == nullptr) return;
cout << "returning memory at address " << start
<< " containing " << start->getData() << endl;
start->setNext(nullptr);
start->setPrev(nullptr);
delete start;
start = nullptr;
}
private:
DlistNode * start;
};
void main()
{
cout << "Testing Linked List" << endl;
Llist * s = nullptr;
addFront(s,20);
print(s);
cout << "Testing Double Linked List" << endl;
Dlist d;
d.addFront(4);
d.print();
cout << "Testing complete, heap memory being returned" << endl;
cout << "Returning linked list memory" << endl;
returnAllMemory(s);
cout << "Returning double linked list memory" << endl;
// Dlist destructor automatically calles
}
Explanation / Answer
Try this
void print(const Llist * start)
{
Llist *temp= start;
// print all values, one per line
if (start == nullptr) return;
while(temp->next!= nullptr){
cout << temp->data << endl;
temp=temp->next;
}
return;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.