Answer:
#include <iostream>
#include <stack>
#include <queue>
#include <string>
int main()
{
while ( true )
{
std::string letters;
std::cout << "Please enter a word (Enter - exit): ";
std::getline( std::cin, letters );
if ( letters.empty() ) break;
std::stack<char>
s( std::stack<char>::container_type( letters.begin(), letters.end() ) );
std::queue<char>
q( std::queue<char>::container_type( letters.begin(), letters.end() ) );
while ( !s.empty() && s.top() == q.front() )
{
s.pop();
q.pop();
}
if ( s.empty() ) std::cout << "The word is a palindrome" << std::endl;
else std::cout << "The word is not a palindrome" << std::endl;
}
return 0;
}
Explanation:
A <em>stack</em> is used to replicate a stack data structure in C++ while <em>Queue </em>container is a replica of the queue data structure in C++, Unlike stack, in the queue container, there are two ends, i.e. front, and back.
In the code above to be able to use used stack and queue, we included the headers #include <stack> and#include <queue>.