Boa noite, gente! Eu já dei uma olhada aqui no fórum, mas não consegui achar nada que me ajude a entender e resolver meu problema ;v
Tenho que desenvolver um programa que verifica se uma determinada palavra é palíndroma utilizando apenas uma fila.
A maioria das resoluções da minha professora são utilizando uma struct com os algoritmos comuns da fila (first, empilhar e etc), e no main o problema é resolvido.
Abaixo o código da struct da fila:
#include <iostream>
#include <string>
#include <stdexcept>
using namespace std;
struct queue {
private:
int tamanho = 10;
int *elementos = new int[tamanho];
int quantidade = 0;
public:
void enqueue(int valor) {
if (quantidade == tamanho) {
int *temporario = new int[tamanho * 2];
for (int i = 0; i < tamanho; i++) {
temporario[i] = elementos[i];
}
elementos = temporario;
tamanho *= 2;
}
elementos[quantidade++] = valor;
}
int dequeue() {
if (quantidade != 0) {
int retorno = elementos[0];
for (int i = 0; i < quantidade - 1; i++) {
elementos[i] = elementos[i + 1];
}
quantidade--;
return retorno;
} else {
throw out_of_range("Fila vazia.");
}
}
int first() {
if (quantidade != 0) {
return elementos[0];
} else {
throw out_of_range("Fila vazia.");
}
}
int size() {
return quantidade;
}
bool is_empty() {
return quantidade == 0;
}
};
int main( ) {
queue q;
}
O main eu realmente não consigo fazer, mesmo vendo exemplo resolvidos utilizando pilhas e outros métodos.
Falta-me inteligencia lógica, manos.
Desde já, agradeço!