https://mycourses.msstate.edu/bbcswebdav/pid 1609101 dt content rid 270514661 20
ID: 3750036 • Letter: H
Question
https://mycourses.msstate.edu/bbcswebdav/pid 1609101 dt content rid 270514661 201 830.Group02/Program%20295281 %29.pdf Assignment 1: C++ OOP using Stacks Data Structures and Analysis of Algorithms, ccm290 Objectives To strengthen student's knowledge of C++programming To give student experience in writing Object Oriented code Background Stacks are a simple, but useful data structure in Computer Sdience. The idea behind the stack is the LIFO structure, where items added to the stack first are removed from the stack last. Stacks are typically implemented as either an array or a set of nodes connected by references. Stacks always have a top reference that points to the top of the stack In this assignment, you will implement a node-based stack and use the implementation to solve the palindrome problem. A palindrome is a special word or phrase that when reversed produces the original word. In other words, if we have a string w, w is a palindrome if w, reverse(w) AND w w- For example, "mom" is palindrome because reverse"mom") : "mom" and "mom": "mom." Other palindromes include: 1. Step on no pets 2. Kayak 3. Noon 4 No word, no bond, row on. (Note: only a palindrome if spaces are removed). For this assignment, your Stack class does not have to be templated. Data in each node of the stack should be a "char.The following is a UML diagram that describes the methods and attributes needed for each class:Explanation / Answer
//C++ program
#include<iostream>
using namespace std;
class Node{
char data;
Node* below;
public:
Node(){
below=NULL;
}
Node(char d , Node * b){
data = d;
below = b;
}
Node* getBelow(){
return below;
}
char getData(){
return data;
}
};
class Stack{
Node * top;
int size;
public:
Stack(){
top=NULL;
size=0;
}
Stack(char data){
top = new Node(data , NULL);
size++;
}
void push(char data){
top = new Node(data , top);
size++;
}
char pop(){
Node * temp=top;
top=top->getBelow();
char val=temp->getData();
delete temp;
size--;
return val;
}
string ToString (){
string str="";
while(top){
str+=pop();
}
return str;
}
};
int main(){
Stack st;
string str1="step on no pets",str2;
for(int i=0;i<str1.length();i++){
st.push(str1[i]);
}
str2=st.ToString();
if(str1==str2)cout<<str1<<" is a palindrom ";
else cout<<str1 <<" is not a palindrom ";
str1="no word,no bond ,row on";
for(int i=0;i<str1.length();i++){
st.push(str1[i]);
}
str2=st.ToString();
if(str1==str2)cout<<str1<<" is a palindrom ";
else cout<<str1 <<" is not a palindrom ";
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.