Create a linked list with the following features.
A Node class that stores the data type of your choice.
A constructor that creates a dummy header node.
void display() -- A method for printing the list.
void add(item) -- A method for adding a value to the beginning of the list
void addEnd(item) -- A method of adding a value to the end of the list.
bool contains(item) -- A method for finding a specified value in the list.
int count() -- A method for returning the number of values in the list.
int count(item) -- A method for counting the number of instances of a specified value in the list.
int remove(item) -- A method for deleting a value from the list.
A destructor for destroying the list.
Write a test program in C++ that creates a linked list and demonstrates all of the above functions.
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
class LinkedList
{
private:
Node *head;
public:
//Constructor
LinkedList();
//Prints the list
void display() const;
//Insert in front of list
void add(int item);
//Insert in front of list
void addEnd(int item);
//Check if item is in list or not
bool contains(int item);
//Return number of values in the list
int count();
//Return number of values of specified item in the list
int count(int item);
//Remove item from list
void remove(int item);
//Destructor
~LinkedList();
};
//Constructor
LinkedList::LinkedList() : head(nullptr) {}
//Prints the list
void LinkedList::display() const{
Node *ptr = head;
while(ptr != nullptr)
{
cout << ptr->data << " ";
ptr = ptr->next;
}
}
//Insert in front of list
void LinkedList::add(int item){
Node *newNode = new Node;
newNode->data = item;
newNode->next = nullptr;
if(head == nullptr)//When list is empty
head = newNode;
else
{
newNode->next = head;
head = newNode;
}
}
//Insert in front of list
void LinkedList::addEnd(int item){
Node *newNode = new Node;
newNode->data = item;
newNode->next = nullptr;
if(head == nullptr)
head = newNode;
else {
Node *ptr = head;
while (ptr->next != nullptr)
ptr = ptr->next;
ptr->next = newNode;
}
}
//Check if item is in list or not
bool LinkedList::contains(int item){
Node *ptr = head;
while(ptr != nullptr && ptr->data != item)
ptr = ptr->next;
if(ptr == nullptr)//If value not found in the list
return false;
return true;
}
//Return number of values in the list
int LinkedList::count(){
Node *ptr = head;
int count = 0;
while(ptr != nullptr) {
count++;
ptr = ptr->next;
}
return count;
}
//Return number of values of specified item in the list
int LinkedList::count(int item){
Node *ptr = head;
int count = 0;
while(ptr != nullptr) {
if(ptr->data == item)
count++;
ptr = ptr->next;
}
return count;
}
//Remove item from list
void LinkedList::remove(int item){
Node *pre = nullptr;
Node *cur = head;
while(cur != nullptr && cur->data != item)
{
pre = cur;
cur = cur->next;
}
if(cur == nullptr)//If value not found in list
return;
if(cur == head)//If value is first in the list
head = head->next;
else
pre->next = cur->next;
delete cur;//Free memory allocated for the node
}
//Destructor
LinkedList::~LinkedList(){
Node *ptr = head;
while(ptr != nullptr){
int item = ptr->data;
ptr = ptr->next;
remove(item);
}
}
int main(){
/*Create a list of integers*/
LinkedList list;
//Test add and addEnd
list.add(3);
list.add(2);
list.add(1);
list.addEnd(4);
list.addEnd(5);
list.addEnd(1);
cout << "The list is: ";
list.display();
cout << endl << endl;
//Test remove
list.remove(3);
list.remove(2);
cout << "The list is: ";
list.display();
cout << endl << endl;
//Test contains
if(list.contains(5))
cout << "List contains 5" << endl;
else
cout << "List does not contain 5" << endl;
//Test count
cout << "Number of values in the list: " << list.count() << endl;
cout << "Number of 1's in the list: " << list.count(1) << endl;
return 0;
}
OUTPUT:

FOR ANY HELP JUST DROP A COMMENT
Create a linked list with the following features. A Node class that stores the data type...
Q) Modify the class Linked List below to make it a Doubly Linked List. Name your class DoublyLinkedList. Add a method addEnd to add an integer at the end of the list and a method displayInReverse to print the list backwards. void addEnd(int x): create this method to add x to the end of the list. void displayInReverse(): create this method to display the list elements from the last item to the first one. Create a main() function to test...
C++ Create a class that implements a sorted, doubly-linked list: Start with a copy of the sortedList class. Call your new class doublyLinkedList. Convert the baseline code into a doubly linkedlist, and thoroughly test all existing operations (make sure to check all edge conditions), and then implement the new operations below. The class should have the following additional class methods: • A reverse method: this method will reverse the order of the doubly linked list. This method takes no parameters,...
Consider a Linked List program with the following class: typedef int datatype; struct node { datatype data; node *tail; }; class LinkedList{ private: node *head; node *current;public: //constructors LinkedList(); LinkedList(int i); //destructor ~LinkedList(); bool start(); //sets list postion to header bool nextNode(); //increments to next node in list int getCurrent(); //returns data from current node void insertNode(int i); //inserts node after current node //then sets current node to new node bool deleteNode();//deletes currentnode void deleteAll(); //deletes all nodes };...
Part I: Create a doubly linked circular list class named LinkedItemList that implements the following interface: /** * An ordered list of items. */ public interface ItemList<E> { /** * Append an item to the end of the list * * @param item – item to be appended */ public void append(E item); /** * Insert an item at a specified index position * * @param item – item to be...
c programming A linked list is a linear data structure that allows us to add and remove items from the list very quickly, by simply changing a few pointers. There are many different variations of linked lists. We have studied the doubly-linked, circular, with a dummy-header-node version of a linked list. In the class notes we studied several functions to manipulate a Linked List. For this assignment you must write the code for the following additional linked list functions: addFirst,...
This class implements a doubly linked list in which the nodes are of the class DLNode. This class must implement the interface DLListADT.java that specifies the public methods in this class. The header for this class will then be public class DLList implements DLListADT This class will have three private instance variables: • private DLNode front. This is a reference to the first node of the doubly linked list. • private DLNode rear. This is a reference to the last...
Create an h file called list. It should have the following
features:
lisi's funnc In no particular order: List(): Default constructor. This should construct an empty List, the member variables should be initialized to reflect this state. This function is already fully implemented. 1. List(const List<Type>& other): Copy constructor for the linked list. This should create an entirely new linked list with the same number of Nodes and the Values stored these Nodes in the same order as seen the...
Your task is to complete the following function/functions: 1. Given a position in the linked list, delete the node at that position.(Silver problem - Mandatory ) 2. Print the sum of all negative elements in the linked list.(Gold problem) If you want, you can refer to the the previous recitation manual (which was on Linked Lists) to implement node deletion. #include <iostream> using namespace std; //----------- Define Node --------------------------------------------------- struct Node{ int key; Node *next; }; //----------- Define Linked List...
n JAVA, students will create a linked list structure that will be used to support a role playing game. The linked list will represent the main character inventory. The setting is a main character archeologist that is traveling around the jungle in search of an ancient tomb. The user can add items in inventory by priority as they travel around (pickup, buy, find), drop items when their bag is full, and use items (eat, spend, use), view their inventory as...
import java.util.Scanner;public class Inventory { public static void main (String[] args) { Scanner scnr = new Scanner(System.in); InventoryNode headNode; InventoryNode currNode; InventoryNode lastNode; String item; int numberOfItems; int i; // Front of nodes list ...