⭐:Версия 2, без принт и доступа по ключу
https://pastebin.com/thRWzT53
Илья Шершнев
S:16:36:03 03.06
R:16:38:00 03.06
⭐:версия 3, полная
https://pastebin.com/QVgC3WFp
Илья Шершнев
S:16:37:15 03.06
R:16:38:59 03.06
Можете сюда копирнуть и разбить по файлам?
Илья Шершнев
S:16:37:32 03.06
R:16:39:00 03.06
cpp h и main
Илья Шершнев
S:16:41:56 03.06
R:16:43:38 03.06
⭐:Пока нет
Илья Шершнев
S:16:46:46 03.06
R:16:48:10 03.06
⭐:Копирнуть
Илья Шершнев
S:16:46:47 03.06
R:16:48:11 03.06
⭐:// Реализация круговых двухсторонних очередей в C++
#include <iostream>
using namespace std;
#define MAX 10
template < typename T >
class BaseDeque {
T arr[MAX];
int front;
int rear;
int size;
};
template <typename T>
class Deque : BaseDeque<T> {
T arr[MAX];
int front;
int rear;
int size;
public:
Deque(int size) {
front = -1;
rear = 0;
this->size = size;
}
void addHead(T key);
void addTail(T key);
void removeHead();
void removeTail();
bool isFull();
bool isEmpty();
T getFront();
T getRear();
T get(int index);
void print();
};
template <typename T>
T Deque<T>::get(int index)
{
if (index > size) {
return -1;
}
return arr[index];
}
template <typename T>
void Deque<T>::print()
{
for (int i = 0; i<size; ++i) {
cout « arr[i];
}
}
template <typename T>
bool Deque<T>::isFull() {
return ((front == 0 && rear == size - 1) ||
front == rear + 1);
}
template <typename T>
bool Deque<T>::isEmpty() {
return (front == -1);
}
template <typename T>
void Deque<T>::addHead(T key) {
if (isFull()) {
cout « *Переполнение\n*
« endl;
return;
}
if (front == -1) {
front = 0;
rear = 0;
}
else if (front == 0)
front = size - 1;
else
front = front - 1;
arr[front] = key;
}
template <typename T>
void Deque<T>::addTail(T key) {
if (isFull()) {
cout « * Переполнение\n * « endl;
return;
}
if (front == -1) {
front = 0;
rear = 0;
}
else if (rear == size - 1)
rear = 0;
else
rear = rear + 1;
arr[rear] = key;
}
template <typename T>
void Deque<T>::removeHead() {
if (isEmpty()) {
cout « *Антипереполнение\n*
« endl;
return;
}
if (front == rear) {
front = -1;
rear = -1;
} else if (front == size - 1)
front = 0;
else
front = front + 1;
}
template <typename T>
void Deque<T>::removeTail() {
if (isEmpty()) {
cout « * Антипереполнение\n*
« endl;
return;
}
if (front == rear) {
front = -1;
rear = -1;
} else if (rear == 0)
rear = size - 1;
else
rear = rear - 1;
}
template <typename T>
T Deque<T>::getFront() {
if (isEmpty()) {
cout « * Антипереполнение\n*
« endl;
return -1;
}
return arr[front];
}
template <typename T>
T Deque<T>::getRear() {
if (isEmpty() || rear < 0) {
cout « * Антипереполнение\n*
« endl;
return -1;
}
return arr[rear];
}
int main() {
Deque<int> dq(4);
cout « *Вставить элемент в конец очереди \n*;
dq.addTail(5);
dq.addTail(11);
cout « *Последний элемент: *
« dq.getRear() « endl;
dq.removeTail();
cout « *После удаления последнего элемента новый последний элемент: * « dq.getRear() « endl;
cout « *Вставка в начало очереди \n*;
dq.addHead(8);
cout « *Первый элемент: * « dq.getFront() « endl;
dq.removeHead();
cout « *После удаления первого элемента новый первый элемент: * « dq.getFront() « endl;
}
Илья Шершнев
S:16:47:00 03.06
R:16:48:12 03.06
⭐:Там порежутся > > в »>
Илья Шершнев
S:17:11:00 03.06
R:17:12:29 03.06
⭐:Ну чего?
Илья Шершнев
S:17:17:41 04.06
R:17:18:04 04.06
Да ничего
Илья Шершнев
S:17:17:58 04.06
R:17:18:17 04.06
Незачёт
Илья Шершнев
S:17:18:02 04.06
R:17:18:18 04.06
Сказали код вообще неправильно построен
Илья Шершнев
S:17:18:45 04.06
R:17:19:08 04.06
Это я знаю, как работает, с вк и тлгр когда копируешь их надо менять
Илья Шершнев
S:17:18:57 04.06
R:17:19:20 04.06
Но сказали код в целом неверный
Коста Михаил
S:17:28:59 04.06
R:17:29:13 04.06
по твоему тз всё есть
Возможно надо было на указателях писать, но черт, за 30 минут на указателях мы бы не сделали
Илья Шершнев
S:17:44:35 04.06
R:17:45:00 04.06
Так проблема и была в 30 минутах
Илья Шершнев
S:17:44:46 04.06
R:17:45:02 04.06
За пару я бы и сам что-то нашёл и успел отладить
Коста Михаил
S:21:09:53 04.06
R:21:10:08 04.06
Я написал на плюсах деку с теми функциями, что ты просил..
Уложившись в срок
Одно не сделал - по файлам не разбил по твоей просьбе
Но определение класса ты бы и сам мог в файл засунуть - дело 10 секунд
Илья Шершнев
S:22:51:19 04.06
R:22:51:45 04.06
Если бы я сам мог всё сделать, я бы сюда не писал
Коста Михаил
S:07:49:34 05.06
R:07:49:49 05.06
Вопрос же не в том, что ты не мог сделать
Я сделал по твоему тз(по фотке)
Сделал в срок