Linked List Design your own linked list class to hold a seri

Linked List.

Design your own linked list class to hold a series of integers.

– The class should have the following member functions:

Append nodes

Add a new node to the end of the list

Inserte nodes

Insert a new node before the node whose value is greater or equal to the value of the new node

Delete nodes

Delete the node that has a specific value

Search nodes

Return the position of the node that has a specific value in the linked list

Print the list

Display all the values in the linked list

Copy the list

Make a copy of the list

Destroy the list

Delete the list

– Demonstrate the class with a C++ program

Solution


#include<iostream>
#include <stdlib.h>

using namespace std;


struct node
{
int data;
struct node *next;
};

/*Class SinglyLinkedList Declaration*/
class SinglyLinkedList
{
   /*creating start pointer to indicate the head position of linked list */
   struct node * start;
public:
   //Add a new node to the end of the list
void AppendNode(int);
/*Insert a new node before the node whose value is greater or equal to the value of the new node*/
void InsertBeforeGREValue(int);
//void DeleteAtNode();
void PrintList();
bool Search(int);
void CopyList();
void DestroyList();
SinglyLinkedList()
{
start = NULL;
}
};

void SinglyLinkedList::CopyList(struct node *newStart)
{
   newStart=start;
}

void SinglyLinkedList::DestroyList()
{
   struct node *temp,*t = start->next;
free(start);
   while (t != NULL)
   {
   free(temp);
   temp = temp->next;
   t=temp;
   }
   cout<<\"NULL\"<<endl;
}

//Add a new node to the end of the list
void SinglyLinkedList::AppendNode(int value)
{
struct node *temp, *s;
/* creating a new node to hold value*/
   temp = new(struct node);
   temp->data = value;
temp->next = NULL;
/* If no start node till now, this node is made as start node*/
if (start == NULL)
{
start = temp;
start->next = NULL;   
       Display();   
}
/* if start node exists, insert new node at end of list*/
else
{
s = start;
/* locating end of list*/
while (s->next != NULL)
{   
s = s->next;
}
temp->next = NULL;
/* attaching new node */
s->next = temp;
cout<<\"Element Inserted\"<<endl;
PrintList();
   }
}
/*Insert a new node before the node whose value is greater or equal to the value of the new node*/
void SinglyLinkedList::InsertBeforeGREValue(int value)
{
   struct node *temp, *s;
/* creating a new node to hold value*/
   temp = new(struct node);
   temp->data = value;
temp->next = NULL;
/* If no start node till now, this node is made as start node*/
if (start == NULL)
{
start = temp;
start->next = NULL;   
       Display();   
}
/* if start node exists, insert new node at end of list*/
else
{
if(start->data>=value)
{
   s=start;
   start=temp;
   start->next=s;
   }
   else
   {
s = start;
/* locating end of list*/
while (s->data < value && s->next != NULL)
{   
s = s->next;
}
temp->next = NULL;
/* attaching new node */
s->next = temp;
cout<<\"Element Inserted\"<<endl;
PrintList();
   }
}
}

/*To Display Elements of the linked list*/
void SinglyLinkedList::PrintList()
{
struct node *temp;
if (start == NULL)
{
cout<<\"The List is Empty\"<<endl;
}
else
{
   temp = start;
   cout<<endl<<\"Linked List\"<<endl;
   //traversing the list and prints data
   while (temp != NULL)
   {
   cout<<temp->data<<\"->\";
   temp = temp->next;
   }
   cout<<\"NULL\"<<endl;
   }
}
  
/*To search an element in linked list*/
bool SinglyLinkedList::Search(int value)
{
struct node *temp;
bool flag=false;
if (start == NULL)
{
cout<<\"The List is Empty\"<<endl;
}
else
{
   temp = start;
   //traverse the list
   while (temp != NULL)
   {
       //if match occurs
       if(temp->data==value)
       {
           flag=true;
           break;
           }
   temp = temp->next;
   }
   return flag;
   }
}

Linked List. Design your own linked list class to hold a series of integers. – The class should have the following member functions: • Append nodes Add a new no
Linked List. Design your own linked list class to hold a series of integers. – The class should have the following member functions: • Append nodes Add a new no
Linked List. Design your own linked list class to hold a series of integers. – The class should have the following member functions: • Append nodes Add a new no
Linked List. Design your own linked list class to hold a series of integers. – The class should have the following member functions: • Append nodes Add a new no

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site