- 一、括号匹配
- 1.栈结构体
- 2.栈的初始化
- 3.压栈
- 4.出栈
- 5.核心算法--借助栈
- 6.完整代码
- 7.运行结果
- 三、总结
typedef struct CharStack
{
int top;
int data[MaxSize];
}*CharStackPtr;
用int类型,是把括号利用了强制转换
2.栈的初始化CharStackPtr charStackInit()
{
CharStackPtr resultPtr = (CharStackPtr)malloc(sizeof(struct CharStack));
resultPtr->top = -1;
return resultPtr;
}
3.压栈
void push(CharStackPtr paraStackPtr, int paraValue)
{
// Step 1. Space check.
if(paraStackPtr->top >= MaxSize-1)//top从0开始计数,所以可以看成是下标
{
cout<<"Cannot push element: stack full.rn";
return;
}
// Step 2. Update the top.
paraStackPtr->top ++;
// Step 3. Push element.
paraStackPtr->data[paraStackPtr->top] = paraValue;
}
4.出栈
int pop(CharStackPtr paraStackPtr)
{
// Step 1. Space check.
if(paraStackPtr->top < 0)
{
cout<<"Cannot pop element: stack empty."<

