Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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;
}