#include <stdio.h> #include <stdlib.h> struct stack { int top; int size; int *arr; }; int isEmpty(struct stack *ptr) { if (ptr->top == -1) { return 1; } return 0; } int isFull(struct stack *ptr) { if (ptr->top == ptr->size - 1) { return 1; } return 0; } void push(struct stack *ptr, int value) { if (isFull(ptr)) { printf("The stack is Overflow"); } else { ptr->top++; ptr->arr[ptr->top] = value; } } char pop(struct stack *ptr) { if (isEmpty(ptr)) { printf("The stack is underflow"); } else { char value = ptr->arr[ptr->top]; ptr->top--; return value; } } char checkpranthesis(char *exp) { struct stack *sp ; sp->size = 15; sp->top = -1; sp->arr = (char *)malloc(sp->size * sizeof(char)); printf("Stack is succesfully created \n"); for (int i = 0; exp[i] != '\0'; i++) { if (exp[i] == '(') { push(sp, '('); } else if (exp[i] == ')') { if (isEmpty(sp)) { return 0; } pop(sp); } } if (isEmpty(sp)) { return 1; } else { return 0; } } int main() { char *exp = "(6+7)-((9*(8))"; if (checkpranthesis(exp)) { printf("It is matching"); } else { printf("It is not matching"); } return 0; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter