栈的应用
1、算术表达式 求值 #include<stdio.h> #include<stdlib.h> #include<ctype.h> typedef struct Node { int data; struct Node * pNext; }NODE,* PNODE; typedef struct Stack { PNODE pTop; PNODE pBottom; }STACK,*PSTACK; //初始化 void initStack(PSTACK); //判断栈是否为空 bool isEmpty(PSTACK); //压栈 void push(PSTACK,int); //出栈 bool pop(PSTACK,int* pVal); //返回栈顶元素 int top(PSTACK pS); void initStack(PSTACK pS) { pS->pTop=(PNODE)malloc(sizeof(NODE)); if (NULL == pS->pTop) { printf("分配内存失败,程序终止!\n"); exit(-1); } else { pS->pBottom = pS->pTop; pS->pTop->pNext = NULL; } } bool isEmpty(PSTACK pS) { if (pS->pTop == pS->pBottom) return