From c6bc541ab58363d783e60a007e80e9bf9e231fda Mon Sep 17 00:00:00 2001 From: garhve Date: Mon, 5 Dec 2022 19:43:39 +0800 Subject: initialize --- .../\351\223\276\346\240\210/p_match.c" | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 "c/dataStructure/\346\240\210\345\222\214\351\230\237\345\210\227/\346\240\210/\351\223\276\346\240\210/p_match.c" (limited to 'c/dataStructure/栈和队列/栈/链栈/p_match.c') diff --git "a/c/dataStructure/\346\240\210\345\222\214\351\230\237\345\210\227/\346\240\210/\351\223\276\346\240\210/p_match.c" "b/c/dataStructure/\346\240\210\345\222\214\351\230\237\345\210\227/\346\240\210/\351\223\276\346\240\210/p_match.c" new file mode 100755 index 0000000..44efecd --- /dev/null +++ "b/c/dataStructure/\346\240\210\345\222\214\351\230\237\345\210\227/\346\240\210/\351\223\276\346\240\210/p_match.c" @@ -0,0 +1,41 @@ +#include "stack.h" + +int main(void) +{ + ElemType ch; + Stack s; + ElemType pop, top; + bool flag = true; + + InitStack(&s); + + while ((ch = getchar()) != '\n' && flag) + { + switch (ch) + { + case '(': Push(&s,ch); + break; + case '[': Push(&s,ch); + break; + case ')': if (StackIsEmpty(&s) || (top = GetTop(&s)) != '(') + flag = false; + else if (top == '(') + Pop(&s,&pop); + break; + case ']': if (StackIsEmpty(&s) || (top = GetTop(&s)) != '[') + flag = false; + else if (top == '[') + Pop(&s,&pop); + break; + } + } + + if (StackIsEmpty(&s) && flag) + printf("Matching successful!\n\n"); + else + { + fprintf(stderr,"Matching failed!\n\n"); + DestroyStack(&s); + } + return 0; +} \ No newline at end of file -- cgit v1.2.3-70-g09d2