用c语言实现栈的回文判断
时间: 2023-10-11 20:08:40 浏览: 140
下面是用C语言实现栈的回文判断的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
char stack[MAX_SIZE];
int top = -1;
void push(char c) {
if (top == MAX_SIZE - 1) {
printf("Stack Overflow");
return;
}
stack[++top] = c;
}
char pop() {
if (top == -1) {
printf("Stack Underflow");
return -1;
}
return stack[top--];
}
int main() {
char str[MAX_SIZE];
int i, len, mid;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
mid = len / 2;
for (i = 0; i < mid; i++) {
push(str[i]);
}
if (len % 2 != 0) {
i++;
}
while (str[i] != '\0') {
if (str[i] != pop()) {
printf("%s is not a palindrome", str);
return 0;
}
i++;
}
printf("%s is a palindrome", str);
return 0;
}
```
这个程序使用一个字符数组作为栈来实现。我们首先读入一个字符串,然后将字符串的前一半字符依次入栈。接着,我们用一个循环读取字符串的后一半字符,同时弹出栈顶元素,并与当前字符比较。如果两个字符不相等,则该字符串不是回文,否则它是回文。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)