Помогите пожалуйста с созданием операторов для дека С++!!

Дополнить класс дека целых чисел,л, разработанный на этапе , следующими операциями:
𝑒𝑙𝑒𝑚𝑒𝑛𝑡 + 𝐷𝑒𝑞𝑢𝑒 — добавление в дек 𝐷𝑒𝑞𝑢𝑒 целочисленного элемента со значением
𝑒𝑙𝑒𝑚𝑒𝑛𝑡 слева.
𝐷𝑒𝑞𝑢𝑒 + 𝑒𝑙𝑒𝑚𝑒𝑛𝑡 — добавление в дек 𝐷𝑒𝑞𝑢𝑒 целочисленного элемента со значением
𝑒𝑙𝑒𝑚𝑒𝑛𝑡 справа.
− − 𝐷𝑒𝑞𝑢𝑒 — префиксная операция “минус-минус”, удаление элемента из дека 𝐷𝑒𝑞𝑢𝑒
слева.
𝐷𝑒𝑞𝑢𝑒 − − — постфиксная операция “минус-минус”, удаление элемента из дека 𝐷𝑒𝑞𝑢𝑒
справа
𝐷𝑒𝑞𝑢𝑒2 = 𝐷𝑒𝑞𝑢𝑒1 — присваивание значения объекта 𝐷𝑒𝑞𝑢𝑒1 объекту 𝐷𝑒𝑞𝑢𝑒2.
коды первого этапа:
//#include<stdio.h>
//#include<stdlib.h>
//#include«intdeque.hpp»
/*******/
/*** Конструктор копирования */
/
*******/
IntDeque :: IntDeque(IntDeque &_deque)
{
buffer = 0;
left = 0;
right = 0;
IntDequeElement
bg = _deque.left;
while (bg)
{
AddRight(bg->GetElement());
bg =bg->GetNext();
}

};
/*******/
/
Добавление элемента со значением [element] слева/
/*******
/
int IntDeque :: AddLeft(int element){
//————————————————————————-/
if (IsEmpty()) {
right = left = new IntDequeElement(element);
buffer = element;
return &buffer;
}
else {
IntDequeElement
mp = new IntDequeElement(element);
buffer = element;
mp->SetNext(left);
left->SetPrev(mp);
left = mp;
return &buffer;
}
};
/*******/
/
Добавление элемента со значением [element] справа/
/*******
/
int IntDeque :: AddRight(int element){
//————————————————————————-/
if (IsEmpty()) {
right = left = new IntDequeElement(element);
buffer = element;
return &buffer;
}
else
{
IntDequeElement
mp = new IntDequeElement(element);
buffer = element;
mp->SetPrev(right);
right->SetNext(mp);
right = mp;
return &buffer;
}
};
/*******/
/** Удаление слева ***/
/
*******/
int IntDeque :: RemoveLeft(){
//————————————————————————-/
IntDequeElement
mp;
if (IsEmpty())
{
return NULL;
}
else if(left==right)
{
buffer = left->GetElement();
mp = left;
left = NULL;
right = NULL;
delete mp;
return &buffer;
}
else
{
buffer = left->GetElement();
mp = left;
left = left->GetNext();
left->SetPrev(NULL);
delete mp;
return &buffer;
}
};
/
********/
/
** Удаление справа **/
/
*******/
int IntDeque :: RemoveRight(){
//————————————————————————-/
IntDequeElement
mp;
if (IsEmpty()) {
return NULL;
}
else if (left == right) {
buffer = right->GetElement();
mp = left;
left = right = NULL;
delete mp;
return &buffer;
}
else {
buffer = right->GetElement();
mp = right;
right = right->GetPrev();
right->SetNext(NULL);
delete mp;
return &buffer;
}
};
/
********/
/
* Получение значения поля buffer *
/
/*******
/
int IntDeque :: GetElement(){
//————————————————————————-/
return (buffer);
};
/*******/
/* Проверка дека на пустоту **/
/
*******/
int IntDeque :: IsEmpty(){
//————————————————————————-/
if (left == NULL && right == NULL) {
return 1;
}
else
{
return 0;
}
};
/
********/
/
**
* Деструктор ****/
/
*******/
IntDeque :: ~IntDeque(){
//————————————————————————-/
IntDequeElement
mp;
while (!IsEmpty()) {
if (left == right) {
mp = left;
left = right = NULL;
delete mp;
}
else
{
mp = left;
left = left->GetNext();
left->SetPrev(NULL);
delete mp;
}
}
};
ФАЙЛ .HPP :
class IntDequeElement{

int element;
IntDequeElement * next;
IntDequeElement * prev;

public:
IntDequeElement(){
element = 0;
next = NULL;
prev = NULL;
}
IntDequeElement(int _element){
element = _element;
next = NULL;
prev = NULL;
}
IntDequeElement(int _element, IntDequeElement * _prev, IntDequeElement * _next){
element = _element;
prev = _prev;
next = _next;
}
void SetElement(int _element){
element = _element;
}
int GetElement(){
return element;
}
void SetNext(IntDequeElement * _next){
next = _next;
}
IntDequeElement * GetNext(){
return next;
}
void SetPrev(IntDequeElement * _prev){
prev = _prev;
}
IntDequeElement * GetPrev(){
return prev;
}
};

class IntDeque{
IntDequeElement * left;
IntDequeElement * right;
int buffer;
public:
IntDeque(){
left = NULL;
right = NULL;
buffer = 0;
}
IntDeque(IntDeque& _deque);
int AddLeft(int element);
int
AddRight(int element);
int RemoveLeft();
int
RemoveRight();
int GetElement();
int IsEmpty();
~IntDeque();
};

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.