酷代码 AI
菜单
服务商

c语言编译一个完整的代码利用顺序栈的基本运算判断一个字符串是否为回文。

以下是一个用 C 语言编写的利用顺序栈来判断一个字符串是否为回文的代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 // 定义顺序栈结构 typedef struct { char data[MAX_SIZE]; int top; } Stack; // 初始化栈 void initStack(Stack *s) { s->top = -1; } // 判断栈是否为空 int isEmpty(Stack *s) { return s->top == -1; } // 判断栈是否已满 int isFull(Stack *s) { return s->top == MAX_SIZE - 1; } // 入栈操作 void push(Stack *s, char c) { if (!isFull(s)) { s->data[++s->top] = c; } else { printf("Stack Overflow!\n"); exit(EXIT_FAILURE); } } // 出栈操作 char pop(Stack *s) { if (!isEmpty(s)) { return s->data[s->top--]; } else { printf("Stack Underflow!\n"); exit(EXIT_FAILURE); } } // 判断字符串是否为回文 int isPalindrome(char str[]) { Stack s; initStack(&s); int len = strlen(str); int i; for (i = 0; i < len / 2; i++) { push(&s, str[i]); } if (len % 2!= 0) { i++; } while (!isEmpty(&s) && str[i] == pop(&s)) { i++; } return isEmpty(&s); } int main() { char str[MAX_SIZE]; printf("请输入一个字符串: "); scanf("%s", str); if (isPalindrome(str)) { printf("%s 是回文\n", str); } else { printf("%s 不是回文\n", str); } return 0; } ``` 这段代码首先定义了一个顺序栈结构,并实现了栈的基本操作,然后通过将字符串的前半部分入栈,再与后半部分依次比较,来判断字符串是否为回文。 [2024-10-24 11:34:00 | AI写代码神器 | 553点数解答]

相关提问
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]