Skip to main content

DSL D25

 Data Structure Lab :

Practical C25 :


A palindrome is a string of character that‘s the same forward and backward. Typically, punctuation, capitalization, and spaces are ignored. For example, “Poor Dan is in a droop” is a palindrome, as can be seen by examining the characters “poordanisinadroop” and observing that they are the same forward and backward. One way to check for a palindrome is to reverse the characters in the string and then compare with them the original-in a palindrome, the sequence will be identical. Write C++ program with functions
a) To print original string followed by reversed string using stack 
b) To check whether given string is palindrome or not 


   
 //Author : SPPU CSE GURU  
   
 #include<iostream>  
 #include<string>  
   
 using namespace std;  
   
 class Palindrome{  
      public:  
           int top,max,length;  
           char arr[100];  
           string data;  
           char Pull();  
        
      Palindrome()  
      {  
           top=-1;  
           max=99;  
      }  
        
      void Push();  
      void Clean();  
      void display();  
      void reverse();  
      void CheckPalindrome();  
        
 };  
   
 void Palindrome::Push(){  
        
      if(top<=max)  
      {  
           cout<<"Enter String : "<<endl;  
        getline(cin,data);  
     length=data.size();  
     for(int i=0;i<length;i++){  
          top++;  
          arr[top]=data[i];  
           }  
      }  
        
      else  
      {  
           cout<<"Stack Overflow"<<endl;  
      }  
        
 }  
   
 void Palindrome::Clean(){  
      int i=0,j=0;  
      while(arr[i]){  
           if(arr[i]==' '){  
                length--;  
           }  
           else{  
                arr[j++]=tolower(arr[i]);  
           }  
           i++;  
      }  
   top=j-1;       
 }  
   
   
 char Palindrome::Pull() {  
   if(top==-1)  
   cout<<"Stack Underflow"<<endl;  
   else {  
       return(arr[top--]);  
   }  
 }  
   
   
   
 void Palindrome::display()  
 {  
      if (top==-1)  
   {  
           cout<<"Stack is empty"<<endl;  
      }  
      else  
      {  
   cout<<"Your Original String is :"<<endl;  
      for(int i=0;i<length;i++)  
      {  
           cout<<arr[i];  
      }  
   }  
   cout<<"\n";  
     
 }  
   
 void Palindrome::reverse()  
 {  
      if (top==-1)  
   {  
           cout<<"Stack is empty"<<endl;  
      }  
      else  
      {  
      cout<<"Reversed String is :"<<endl;       
      for(int i=top;i>=0;i--)  
      {  
           cout<<arr[i];  
      }  
   }  
   cout<<"\n";  
 }  
   
   
   
 void Palindrome::CheckPalindrome()  
 {  
        
      int flag=0;  
      if (top==-1)  
   {  
           cout<<"Stack is empty"<<endl;  
      }  
      else  
      {  
      for(int i=0;i<length;i++)  
      {  
           if (arr[i]!=Pull())  
           {  
                flag=1;  
           }  
      }  
   if (flag==0)  
      {  
        cout<<"String is palindrome"<<endl;  
      }  
      else  
      {  
           cout<<"String is not palindrome"<<endl;  
      }  
        
   }  
 }  
   
   
 int main()  
 {  
        
 Palindrome obj;  
   
 obj.Push();  
 obj.Clean();  
 obj.display();  
 obj.reverse();  
 obj.CheckPalindrome();  
   
 return 0;  
 }  

Comments

Post a Comment

Popular posts from this blog

OOP 2

Object Oriented Programming Group A - Practical : 2 Problem Statement :  Develop a program in C++ to create a database of student’s information system containing the following information: Name, Roll number, Class, Division, Date of Birth, Blood group, Contact address, Telephone number, Driving license no. and other. Construct the database with suitable member functions. Make use of constructor, default constructor, copy constructor, destructor, static member functions, friend class, this pointer, inline code and dynamic memory allocation operators-new and delete as well as exception handling. Check Out Code Here  ðŸ‘‡ Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. If you like it, do share with your friends.😊

3D Cube Transformations

  Group C   Practical 6 b   Problem Statement :     Write C++ program to draw 3-D cube and perform following transformations on it using OpenGL i) Scaling ii) Translation iii) Rotation about an axis (X/Y/Z). Check Out Code Here  ðŸ‘‡ Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. If you like it, do share with your friends.😊

Circle Triangle Pattern

  Group A   Practical 3 a   Problem Statement :   a) Write C++ program to draw the following pattern. Use DDA line and Bresenham‘s circle drawing algorithm. Apply the concept of encapsulation. Check Out Code Here  ðŸ‘‡ Output :  Code can get updated so also come back later to see if there is any changes. Also if there is any problem with code you can comment below. If you like it, do share with your friends.😊