酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

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 is full!\n"); } } // 出栈 char pop(Stack *s) { if (!isEmpty(s)) { return s->data[s->top--]; } else { printf("Stack is empty!\n"); return '\0'; } } // 判断字符串是否为回文 int isPalindrome(char *str) { Stack s; initStack(&s); int len = strlen(str); int mid = len / 2; for (int i = 0; i < mid; i++) { push(&s, str[i]); } if (len % 2!= 0) { mid++; } for (int i = mid; i < len; i++) { if (pop(&s)!= str[i]) { return 0; } } return 1; } int main() { char str[] = "race a car"; if (isPalindrome(str)) { printf("%s 是回文\n", str); } else { printf("%s 不是回文\n", str); } return 0; } ``` 这段代码首先定义了一个顺序栈的数据结构,然后实现了相关的操作函数。`isPalindrome`函数通过将字符串前半部分入栈,然后与后半部分依次比较来判断是否为回文。 ######[AI写代码神器 | 548点数解答 | 2024-10-24 11:35:05]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]