//【数据结构】用栈检测括号是否匹配
//头文件 栈
#ifndef _STACK_
#define _STACK_
#include <iostream>
#include <string.h>
using namespace std;
template <class Type>
class Stack
{
public:
Stack(size_t sz = INIT_SIZE)
{
capacity = sz > INIT_SIZE ? sz : INIT_SIZE;
base = new Type[capacity];
top = 0;
}
~Stack()
{
destory();
}
public:
bool empty() const //判断是否为空
{
return(top == 0);
}
bool full()const //判断是否已满
{
return(top >= capacity);
}
void push(const Type &x) //进栈
{
if (full())
{
cout << "栈已满,不能插入。" << endl;
return;
}
base[top++] = x;
}
void pop() //出栈
{
top--;
}
bool getTop(Type &x) const //获得栈顶
{
if (top == 0)
return false;
x = base[top - 1];
return true;
}
int length() const //求大小
{
return
【数据结构】用栈检测括号是否匹配
最新推荐文章于 2022-07-26 19:42:20 发布
本文介绍了一个C++实现的栈类模板,用于检测括号的匹配性。通过创建栈,当遇到右括号时,弹出栈顶元素并与之比较,确保括号匹配。如果匹配则继续,否则返回不匹配。最后,栈为空则表示所有括号匹配成功。
摘要由CSDN通过智能技术生成