Instruction
These are the instructions for your second Data Structure programming project. Recall that all
code must be written individually and independently. Recall that violating this rule will result in
zero credit for the project and probably a failing grade in the course.
Problem:
A palindrome is a phrase that reads the same forwards as it does backwards. For example, “a
man, a plan, a canal, Panama,” is a palindrome. Write a program that uses a stack data
structure to check for palindromes in each line of a text file. The stackX class is from LISTING
4.2. Test your program on the following example text file,
A man, a plan, a canal, Panama.
This line is not a palindrome
Don't nod
The next one might be my favorite
Taco Cat!
Another non-palindrome
Rats live on no evil star.
If your program finds this line, it's not working
Neil, a trap! Sid is part alien!
Step on no pets.
Dammit, I'm mad!
Madam, I'm Adam.
Madam, in Eden, I'm Adam.
Rise to vote, sir.
Never odd or even
If I had a hi-fi
Yo, banana boy!
Do geese see God?
No devil lived on.
Ah, Satan sees Natasha.
Lewd did I live & evil I did dwel!
A dog, a panic in a pagoda
Was it a cat I saw?
Was it a car or a cat I saw?
A Toyota's a Toyota.
Another non-palindrome
No lemons, no melon
Now I see bees, I won.
Ma is as selfless as I am.
Nurse, I spy gypsies—run!
The next one isn't as cool as the Panama one
A dog, a plan, a canal, pagoda
Was it Eliot's toilet I saw?
Some of these are hilarious. Papaya war?!
No, sir, away! A papaya war is on!
Go hang a salami, I'm a lasagna hog.
I, madam, I made radio! So I dared! Am I mad? Am I?
Swap God for a janitor, rot in a jar of dog paws.
COSC 3331 DS and algorithms Project2
Eva, can I see bees in a cave?
Not a palindrome
So many dynamos!
Red rum, sir, is murder.
Your program should output the palindromes that it finds in the document. For example:
java FindPalindromes palindromes.txt
"a man, a plan, a canal, Panama" is a palindrome.
"Don’t nod" is a palindrome.
"Taco Cat!" is a palindrome.
What to hand in?
• A report includes problem statement, analysis, algorithm design, class prototype (class
contract), program Input/Output, and tested results (analysis your result to see if it is
correct).
• The source program (name your file “project2.java”)
• You could either submit through Blackboard or my email box.