Question

In: Computer Science

Assume that a singly linked list is implemented with a header node, but no tail node,...

Assume that a singly linked list is implemented with a header node, but no tail node, and that it maintains only a pointer to the header node. Write a class in C++ that includes methods to
a. return the size of the linked list
b. print the linked list
c. test if a value x is contained in the linked list
d. add a value x if it is not already contained in the linked list
e. remove a value x if it is contained in the linked list

Solutions

Expert Solution

CODE IN C++ :

#include<iostream>
using namespace std;
class Node{
public:
int data;
Node*next;
Node(int data)
{
this->data=data;
this->next=NULL;
}

};
int size_linkedlist(Node*head) //function to find the size of the given linked list
{
if(head==NULL)
{
return 0;
}
Node*temp=head;
int size=0;
while(temp->next!=NULL)
{
temp=temp->next;
size++;
}
return size+1;
}
void print(Node* head) //function to print the linked list
{
if(head==NULL)
{
cout<<-1;
}else{
Node*temp=head;
while(temp->next!=NULL)
{
cout<<temp->data<<" " ;
temp=temp->next;
}
cout<<temp->data;
}
}
bool test(Node*head,int x)//function to test if a number is present in the linked list or not
{
Node*temp=head;
while(temp->next!=NULL)
{
if(temp->data==x)
{
return true;
}
}
return false;
}
void add(Node *head,int x) //function to add a node to the linked list
{
Node*temp=head;
while(temp->next!=NULL)
{
if(temp->data==x)
{
cout<<"Number is already there";
}else
{
temp=temp->next;
}
}
Node* addnode=new Node(x);
temp->next=addnode;
return;


}
void remove(Node*head,int x) //function to remove a node from a linked list
{
Node*temp=head;
while(temp->next!=NULL)
{
if(temp->data==x)
{
Node*temp2=head;
while(temp2->next->data!=x)
{
temp2=temp2->next;
}
temp2->next=temp->next;
return;

}else{
temp = temp->next;
}
}
}

int main()
{
Node*head=new Node(1);
Node*second=new Node(2);
Node*third=new Node(3);
Node*fourth=new Node(4);
head->next=second;
second->next=third;
third->next=fourth;
int size=size_linkedlist(head);
cout<<"The size of linked list is : "<<size<<endl;
print(head);
cout<<endl;
remove(head,3);
print(head);
cout<<endl;
add(head,5);
print(head);

}

OUTPUT SNIPPET:


Related Solutions

Assume that a singly linked list is implemented with a header node, but no tail node,...
Assume that a singly linked list is implemented with a header node, but no tail node, and that it maintains only a pointer to the header node. Write a class that includes methods to a. return the size of the linked list b. print the linked list c. test if a value x is contained in the linked list d. add a value x if it is not already contained in the linked list e. remove a value x if...
I've provided a Node class that implements a node of a simple singly-linked list (with .value...
I've provided a Node class that implements a node of a simple singly-linked list (with .value and .next fields), and an empty LinkedList class. Your task is to implement LinkedList.sort(l), where given the node l as the head of a singly-linked list, LinkedList.sort(l) sorts the nodes in the list into ascending order according to the values in the .value field of each node. Your implementation should do an in-place update of the list. It is ok to use a simple...
Python class DLLNode: """ Class representing a node in the doubly linked list implemented below. """...
Python class DLLNode: """ Class representing a node in the doubly linked list implemented below. """ def __init__(self, value, next=None, prev=None): """ Constructor @attribute value: the value to give this node @attribute next: the next node for this node @attribute prev: the previous node for this node """ self.__next = next self.__prev = prev self.__value = value def __repr__(self): return str(self.__value) def __str__(self): return str(self.__value) def get_value(self): """ Getter for value :return: the value of the node """ return self.__value...
I was supposed to conver a singly linked list to a doubly linked list and everytime...
I was supposed to conver a singly linked list to a doubly linked list and everytime I run my program the output prints a bunch of random numbers constantly until I close the console. Here is the code. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> struct node { int data; struct node *next; struct node *prev; }; //this always points to first link struct node *head = NULL; //this always points to last link struct node *tail = NULL;...
Java program to implement circular linked list. public class CircularLinkedList { private Node tail; private int...
Java program to implement circular linked list. public class CircularLinkedList { private Node tail; private int size; public CircularLinkedList() { tail= null; size = 0; } public int size(){ return size; } public boolean isEmpty() { return size==0; } //if list is not empty return the first element public E first() { if (isEmpty()) return null; //code here return 0; } //if list not empty return last element public E last() { if (isEmpty()) return null; return tail.getElement(); } /*...
In C++, Implement the queue ADT with a singly linked list
In C++, Implement the queue ADT with a singly linked list
Exercise 1: Write a program in Java to manipulate a Singly Linked List: 1. Create Singly...
Exercise 1: Write a program in Java to manipulate a Singly Linked List: 1. Create Singly Linked List 2. Display the list 3. Count the number of nodes 4. Insert a new node at the beginning of a Singly Linked List. 5. Insert a new node at the end of a Singly Linked List 6. Insert a new node after the value 5 of Singly Linked List 7. Delete the node with value 6. 8. Search an existing element in...
Data Structures on Java Basic Linked List exercises a. Suppose x is a linked-list node and...
Data Structures on Java Basic Linked List exercises a. Suppose x is a linked-list node and not the last node on the list. What is the effect of the following code fragment? x.next = x.next.next b. Singly Linked List has two private instance variables first and last as that point to the first and the last nodes in the list, respectively. Write a fragment of code that removes the last node in a linked list whose first node is first....
Write PSEUDOCODE to insert a node at position 2 in a doubly-linked list (assume position follows...
Write PSEUDOCODE to insert a node at position 2 in a doubly-linked list (assume position follows classic indexing from 0 to item_count - 1)
The file supplied.o contains code that can build, display, and destroy a linear linked list (singly-linked)....
The file supplied.o contains code that can build, display, and destroy a linear linked list (singly-linked). For this lab, you will need to write the following two functions in list.cpp, and add function prototypes for them to list.h. The provided main.cpp has calls to each of these functions commented out. As you write the functions, uncomment them from main.cpp. void reverse(node * head, node *& newHead) Recursively make a revserse copy of the source list with head where newhead is...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT