C program to check String is Palindrome or not using Stack
C program to check String is Palindrome or not using Stack
Problem Description
This is a C Program to identify whether a string is palindrome or not using stack. A palindrome string is a string that reads the same backward as forward. Some palindrome string examples are "C", "CC", "CCC", "madam", "abba", etc.
C program to check String is Palindrome or not using Stack - Source code
/* C Program to Identify whether a String is Palindrome or not using Stack */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 50 int top = -1, front = 0; int stack[MAX]; void push(char); void pop(); void main() { int i, c; char s[MAX], b; while (1) { printf("1-enter string\n2-exit\n"); printf("enter your choice\n"); scanf("%d", &c); switch (c) { case 1: printf("Enter the String\n"); scanf("%s", s); for (i = 0;s[i] != '\0';i++) { b = s[i]; push(b); } for (i = 0;i < (strlen(s) / 2);i++) { if (stack[top] == stack[front]) { pop(); front++; } else { printf("%s is not a palindrome\n", s); break; } } if ((strlen(s) / 2) == front) printf("%s is palindrome\n", s); front = 0; top = -1; break; case 2: exit(0); default: printf("Please enter correct choice\n"); } } } /* to push a character into stack */ void push(char a) { top++; stack[top] = a; } /* to delete an element in stack */ void pop() { top--; }
Program Output
1-enter string 2-exit enter your choice 1 Enter the String madam madam is palindrome 1-enter string 2-exit enter your choice 1 Enter the String abbbcbbba abbbcbbba is palindrome 1-enter string 2-exit enter your choice compscibits Enter the String compscibits is not a palindrome 1-enter string 2-exit enter your choice
Program Explanation
1. Take a string as input and store it in the array s[]. 2. Load each character of the array s[] into the array stack[] using a for loop. 3. Use variables front and top to represent the last and top element of the array stack[]. 4. Using for loop compare the top and last element of the array stack[]. If they are equal, then delete the top element, increment the variable front by 1 and compare again. 5. If they are not equal, then print the output as “It is not a palindrome”. 6. Compare the elements in the steps 4 and 5 upto the middle element of the array stack[]. 7. If every characters of the array is equal, then it is a palindrome.