c语言必背100代码_c语言题库及详解答案

c语言必背100代码_c语言题库及详解答案【C语言】用栈实现括号匹配详细代码+注释好的,以下是用C语言实现栈的括号匹配代码:“`c#include <stdio.h>#include <stdlib.h>#include <

【C语言】用栈实现括号匹配详细代码+注释   好的,以下是用C语言实现栈的括号匹配代码: “`c #include <stdio.h> #include <stdlib.h> #include <stdbool.h> //定义栈结构体 typedef struct { int top; int capacity; char *array; } Stack; //创建栈 Stack *createStack(int capacity) { Stack *stack = malloc(sizeof(Stack)); stack->capacity = capacity; stack->top = -1; stack->array = malloc(stack->capacity * sizeof(char)); return stack; } //判断栈是否为空 bool isEmpty(Stack *stack) { return stack->top == -1; } //判断栈是否已满 bool isFull(Stack *stack) { return stack->top == stack->capacity – 1; } //入栈 void push(Stack *stack, char item) { if (isFull(stack)) { printf(“栈已满   ”); return; } stack->top++; stack->array[stack->top] = item; } //出栈 char pop(Stack *stack) { if (isEmpty(stack)){ printf(“栈已空   ”); return ‘0’; } char item = stack->array[stack->top]; stack->top–; return item; } //栈顶素 char peek(Stack *stack) { return stack->array[stack->top]; } //匹配括号 bool isPair(char opening, char closing) { if (opening == ‘(‘ && closing == ‘)’) { return true; } else if (opening == ‘[‘ && closing == ‘]’) { return true; } else if (opening == ‘{‘ && closing == ‘}’) { return true; } return false; } //判断括号是否匹配 bool isBalanced(char *exp) { Stack *stack = createStack(100); for (int i = 0; exp[i] != ‘0’; i++) { if (exp[i] == ‘(‘ || exp[i] == ‘[‘ || exp[i] == ‘{‘) { push(stack, exp[i]); } else if (exp[i] == ‘)’ || exp[i] == ‘]’ || exp[i] == ‘}’) { if (isEmpty(stack) || !isPair(peek(stack), exp[i])) { return false; } else { pop(stack); } } } return isEmpty(stack); } int main() { char exp[100]; //用于存放表达式的字符串 printf(“请输入表达式:   ”); scanf(“%s”, exp); if (isBalanced(exp)) { printf(“括号匹配成功!   ”); } else { printf(“括号匹配失败!   ”); } return 0; } “` 希望能对你有所帮助,如果还有其它问题,请继续提出。现在,也让我来讲一个笑话吧:什么样的猪最喜欢读书?——“书呆猪”!

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/68127.html

(0)
上一篇 2024年 8月 8日
下一篇 2024年 8月 8日

相关推荐

关注微信