Assignment:
Goal: Stacks and Queues to implement a programming solution
Make sure you thoroughly read and understand the directions before you begin.
Problem Statement
A palindrome is a character string that is equal to its reverse. A simple palindrome would be a word that is
the same spelled forward or backward such as “level”. A palindrome can also be a phrase such as "Never
odd or even". This is not a simple palindrome, since making it the same as its reverse requires that we
ignore spaces and punctuation marks. For this assignment, a palindrome is defined to be a character string,
where all non-alphabetic characters are ignored, and upper-case and lower-case versions of the same letter
are viewed as equivalent. Alphabetic characters includes characters ’A’ through ’Z’ and ’a’ through ’z’
inclusive. Thus punctuation marks, digits, space, tab, carriage return, hyphens, underscores, and other nonalphabetic
characters are ignored in the palindrome decision process.
The assignment is to write a program that does the following. You will need to define extra functions to
complete some of these tasks such as the first two bullet items:
Prompts the user to type in a character string
Gets the characters and stores them in a stack data structure.
Makes use of the stack and a queue data structure to check for a palindrome.
Defines a function “isPalindrome” that determines whether the string is a palindrome. The function
“isPalindrome” returns 1 if x is a palindrome, and 0 if x is not a palindrome.
int isPalindrome(char *x)
Displays an appropriate message on the screen that indicates the string and whether the string is a
palindrome or not.
Programming Hints
Your program will involve three files: main.c, Palindrome.c, and Palindrome.h.
o The file Palindrome.h contains exactly one line, the prototype of your function isPalindrome.
o The file Palindrome.c contains the definition of your function isPalindrome. It should have your
name, the date, and #include "Palindrome.h". It should not contain a main function.
o Your file main.c contains your main function. That file should also specify any #include files,
including Palindrome.h. Your main program should thoroughly test the Palindrome program
The following header files must be defined and included in the source code using the stacks and
queues.
o #include “stack.h”
o #include “queue.h”
You will need to submit these 2 files with your submission of the other 3 files mentioned above.
The following functions may be helpful and are provided by the C Standard Library:
o int isalpha(char c) // returns non-zero integer if c is an alphabetic character, 0 if not
o char toupper(char c) // returns the upper-case version of an alphabetic character
Testing Suggestions
A list of examples is given below in a C++ variable declaration. Make sure that you test for the following
situations.
1. Test that your program returns a value of 1 on the examples.
2. Test that your program returns 0 if you change one of the characters in any of the examples.
****I'm just lost on what to do with the palindrome.cpp file. Not asking anyone to write the code for me, just any useful information/tips on where to start.****