



Simple test in text:
int main()
{
Deque dq1;
cout << dq1.empty() << " - 1" << endl;
dq1.insertFront(42);
dq1.insertBack(216);
cout << dq1.peekFront() << " - 42" << endl;
cout << dq1.peekBack() << " - 216" << endl;
cout << dq1.size() << " - 2" << endl;
Deque dq2(dq1);
Deque dq3;
dq3 = dq1;
cout << dq1.removeFront() << " - 42" << endl;
cout << dq1.removeBack() << " - 216" << endl;
cout << dq2.peekFront() << " - 42" << endl;
cout << dq2.peekBack() << " - 216" << endl;
cout << dq3.peekFront() << " - 42" << endl;
cout << dq3.peekBack() << " - 216" << endl;
return 0;
}
C++ Question
#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node *next, *prev;
public:
Node(int val){
data = val;
next=nullptr;
prev=nullptr;
}
friend class Deque;
};
class Deque{
Node *front;
Node *rear;
public:
Deque();
Deque(Deque ©);
~Deque();
void operator = (Deque ©);
void insertFront(int val);
void insertBack(int val);
int removeFront();
int removeBack();
int peekFront();
int peekBack();
bool empty();
int size();
};
Deque::Deque(){
front=nullptr;
rear=nullptr;
}
Deque::Deque(Deque ©){
Node* curr=copy.front;
if(curr==nullptr)
return;
front = new Node(curr->data);
Node *temp = front;
//curr=curr->next;
while(curr->next!=nullptr){
temp->next = new Node(curr->next->data);
temp->next->prev = temp;
curr = curr->next;
temp = temp->next;
}
rear = temp;
}
Deque::~Deque(){
Node *temp=front;
front=nullptr;
Node *temp2;
while(temp!=nullptr){
temp2=temp;
temp=temp->next;
delete(temp2);
}
rear = nullptr;
}
void Deque::operator=(Deque ©){
//check doubly linked list is same
Node *curr=copy.front;
Node *temp = front;
while(temp!= nullptr && curr!=nullptr)
{
if(temp->data==curr->data){
temp = temp->next;
curr = curr->next;
}else{
break;
}
}
if(temp==nullptr && curr==nullptr){
return;
}
//free the doubly linked list
temp=front;
front=nullptr;
Node *temp2;
while(temp!=nullptr){
temp2=temp;
temp=temp->next;
delete(temp2);
}
rear = nullptr;
//original list is now empty
curr=copy.front;
front = new Node(curr->data);
temp = front;
//curr=curr->next;
while(curr->next!=nullptr){
temp->next = new Node(curr->next->data);
temp->next->prev = temp;
curr = curr->next;
temp = temp->next;
}
rear = temp;
}
void Deque::insertFront(int val){
if(front==nullptr){
front=new Node(val);
rear=front;
return;
}
Node *temp = new Node(val);
temp->next=front;
front->prev=temp;
front=temp;
}
void Deque::insertBack(int val){
if(front==nullptr){
front=new Node(val);
rear=front;
return;
}
Node *temp = new Node(val);
rear->next=temp;
temp->prev = rear;
rear=temp;
}
int Deque::removeFront()
{
if(front==nullptr){
throw "Your list an empty";
}
Node *temp=front;
front=front->next;
int num = temp->data;
if(front!=nullptr)
front->prev=nullptr;
delete(temp);
return num;
}
int Deque::removeBack()
{
if(rear==nullptr){
throw "Your list an empty";
}
Node *temp = rear;
int num = temp->data;
rear = rear->prev;
if(rear!=nullptr)
rear->next=nullptr;
delete(temp);
return num;
}
int Deque::peekFront()
{
if(front==nullptr){
throw "Your list an empty";
}
return front->data;
}
bool Deque::empty()
{
if(front==nullptr)
return true;
return false;
}
int Deque::size()
{
Node *temp=front;
int count=0;
while(temp!=nullptr)
{
count++;
temp=temp->next;
}
return count;
}
int Deque::peekBack()
{
if(front==nullptr){
throw "Your list an empty";
}
return rear->data;
}
int main() {
Deque dq1;
cout << dq1.empty() << " - 1" << endl;
dq1.insertFront(42);
dq1.insertBack(216);
cout << dq1.peekFront() << " - 42" << endl;
cout << dq1.peekBack() << " - 216" << endl;
cout << dq1.size() << " - 2" << endl;
Deque dq2(dq1);
Deque dq3;
dq3 = dq1;
cout << dq1.removeFront() << " - 42" <<
endl;
cout << dq1.removeBack() << " - 216" <<
endl;
cout << dq2.peekFront() << " - 42" << endl;
cout << dq2.peekBack() << " - 216" << endl;
cout << dq3.peekFront() << " - 42" << endl;
cout << dq3.peekBack() << " - 216" << endl;
return 0;
}
Output:

Simple test in text: int main() { Deque dq1; cout << dq1.empty() << " - 1"...
Template Deque Class (C++)
In this assignment, we will use a given test menu for the
template Deque Class (a Linked List based Double Ended Queue,
Deque) that you have put together.
Recommended Steps
testDeque.cpp :
// C++ implementation of doubly linked list Deque doubly linked
list
#include <bits/stdc++.h>
using namespace std;
class Timer {
// To replace with the full timer class definition
// inside this folder: LearnCpp9_18_timeSortArray.cpp
};
// Node of a doubly linked list
template<class T>
class...
Template Dequeue Class (C++ )
In this assignment, we will use a given test menu for the
template Deque Class (a Linked List based Double Ended Queue,
Deque) that you have put together.
Starter
testDeque.cpp which contains:
Timer class holder (you need to go through the LearnCpp Ch15
and import it in)
Node class
Deque class specification (you need to fill out the
definition)
here is the testDeque.cpp code:
// C++ implementation of doubly linked list Deque doubly linked
list...
Code in C++. Can someone make it so that the code below can be compiled? ▪ Creating an empty queue ▪ Inserting a value ▪ Removing a value ▪ Finding the size of the queue ▪ Printing the contents of the queue ▪ Adding the contents of one queue to the end of another ▪ Merging the contents of two queues into a third, new, queue Class Attributes Your class should be implemented using a linked list and should have...
// thanks for helping // C++ homework // The homework is to complete below in the stack.h : // 1. the copy constructor // 2. the assignment operator // 3. the destructor // 4. Write a test program (mytest.cpp) to test copy and assignment // 5. Verify destructor by running the test program in Valgrind // This is the main.cpp #include <iostream> #include "stack.h" using namespace std; int main() { Stack<int> intStack; cout << "\nPush integers on stack and dump...
C++ Error. I'm having trouble with a pointer. I keep getting the
error "Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)"
The objective of the assignment is to revise the public method
add in class template LinkedBag so that the new
node is inserted at the end of the linked chain instead of at the
beginning.
This is the code I have:
linkedBag-driver.cpp
BagInterface.hpp
LinkedBag.hpp
Node.hpp
int main) LinkedBag<string> bag; cout << "Testing array-based Set:" << endl; cout << "The initial bag is...
What is the specific answer for 1. and 2. Thanks! Add a new method, find, to class SinglyLinkedList (defined here) that takes as input a “data” value and returns a pointer to a node. If the input data is present in the linked list, the returned pointer should point to that node; if not, the returned pointer is nullptr. Write the (single line) method declaration/specification. Write the method definition/implementation. Test by running the main() function below and capture the console...
I am having trouble with my C++ program.... Directions: In this lab assignment, you are to write a class IntegerSet that represents a set of integers (by definition, a set contains no duplicates). This ADT must be implemented as a singly linked list of integers (with no tail reference and no dummy head node), but it need not be sorted. The IntegerSet class should have two data fields: the cardinality (size) of the set, and the head reference to the...
Skip list, needs to be implemented in Java: - Implement the class NodeSkipList with two components, namely key node and array of successors. You can also add a constructor, but you do not need to add any method. - In the class SkipList implement a constructor SkipList(long maxNodes). The parameter maxNodes determines the maximal number of nodes that can be added to a skip list. Using this parameter we can determine the maximal height of a node, that is, the...
Doubly Linked List Java Help Details: First, read the DoublyLinkedList.java code and try to understand what each field stores and what each method is doing. Modify and complete the class as described below •The field size was defined in the class but was never maintained. Set the current default value and modify it whenever it is needed in the existing methods and other methods you implement as it is needed. It should always include the number of Nodes inside the...
Fill the code in list.cpp app.cpp: #include "list.hpp" int main() { LinkedList aList; bool success = false; aList.evensFrontOddsEnd(3); aList.evensFrontOddsEnd(10); aList.evensFrontOddsEnd(6); aList.evensFrontOddsEnd(9); aList.evensFrontOddsEnd(17); aList.evensFrontOddsEnd(12); aList.printForward(); // output should be: 12 6 10 3 9 17 aList.printBackward(); // output should be: 17 9 3 10 6 12 success = aList.remove(17); if(success) cout << "17 Successfully Removed." << endl; success = aList.remove(10); if(success) cout << "10 Successfully Removed." << endl; success = aList.remove(7); // 7 is not in the list, so success should...