链栈实现括号匹配
数据结构中有一种结构叫做栈,它是一种先入后出的结构,通过这个程序的编写,基本上颠覆了我对于指针的认识,我才发现我对于c语言的指针并没有深入理解,我仅仅是对于一级指针有所了解。指针的值和指针所指向的对象我还有点搞不清楚。
这个程序是括号的检验,因为之前写过顺序栈,这次想用链栈实现,使用尾插法,并让指针域指向上一个节点姐可以形成栈,通过这个程序我认识到了在动手写程序之前把逻辑搞清楚是很重要的,这个程序的逻辑就是,输入括号-> 若为左括号入栈,若为右括号就与栈顶括号进行匹配->此时只有两种情况,1.匹配,即删去栈顶节点,并判断是否为空栈,若为空栈就结束程序,输出匹配。2.不匹配,输出不匹配,结束程序。把逻辑理清楚后剩下的就是编程的事了,以后最好把逻辑用注释写在开头。
编程中我犯了大忌,在函数里申请内存,一出函数就被释放了,导致程序崩溃。还有往函数里传递指针,函数形参的问题。代码如下:
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
typ