使用堆栈类的对象 编写

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:00:23
编写一个判断在算术表达式中开括号和闭括号是否配对的函数(使用堆栈类的对象)

//sqstack.c=====================================================
#include <stdio.h>
#include <stdlib.h>
#include "../header/sqstack.h"

void ClearStack( SqStack *S ) /*将 S 置为空栈。*/
{
S->top = S->base;
}

void DestroyStack( SqStack *S ) /* 销毁栈S,S 不再存在。*/
{
free( S->base );
S->base = S->top = NULL;
S->stacksize = 0;
}

int GetTop(SqStack *S, char *e) /* 返回栈顶元素 */
{
if ( S->base == S->top ) { /* 栈空,返回0 */
return 0;
}

*e = *(S->top - 1);
return 1; /* 栈不空,返回1 */
}

int InitStack(SqStack *S) /* 创建一个空栈 */
{
S->base = malloc( INIT_SIZE * sizeof *S->base );
if ( !S->base ) { /* 空间分配失败 */
return 0;
}
/* 空间分配成功 */
S->top = S->base; /* 置栈顶指针 */
S->stacksize = INIT_SIZE; /* 初始化栈大小 */

return 1; /* 空栈创建成功 */
}

in