算法
1 从第一个字符开始扫描
2 当遇见普通字符时候忽略,遇见做字符压入栈。
3 当遇见右符号时候从栈中弹出栈顶符号
匹配成功,继续读入下一字符
匹配失败,立即停止并报错
成功:所有字符扫描完毕,且栈为空
失败:匹配失败或者所有字符扫描完毕但栈不是空的。
伪代码:
int scanner(const char* code)
{
创建栈;...
分类:
其他好文 时间:
2015-06-08 01:03:25
阅读次数:
130
头文件:
#pragma once
#include
#include
using namespace std;
template
class SeqStack
{
public:
SeqStack(size_t sz = INIT_SZ);
~SeqStack();
public:
bool empty()const;
bool full()const;
vo...
分类:
编程语言 时间:
2015-06-01 16:58:15
阅读次数:
166
头文件:
#pragma once
#include
#include
using namespace std;
template
class SeqStack
{
public:
SeqStack(size_t sz = INIT_SZ);
~SeqStack();
public:
bool empty()const;
bool full()const;
void s...
分类:
编程语言 时间:
2015-06-01 14:48:35
阅读次数:
312
头文件:
#pragma once
#include
#include
#include
using namespace std;
template
class SeqStack
{
public:
SeqStack(size_t sz = INIT_SZ);
~SeqStack();
public:
bool empty()const;
bool full()cons...
分类:
编程语言 时间:
2015-05-29 10:11:53
阅读次数:
143
/*十进制转八进制*/#include #include #include using namespace std;#define SIZE 300struct Cstruct{int *base; //用来指向栈底int *top; //用来指向栈顶int size; //用来初始化栈的大小Cst...
分类:
其他好文 时间:
2015-05-28 22:55:07
阅读次数:
211
1:头文件:SqStack.h#include
#include
#define ElemType int
#define STACK_SIZE 100
#define ADD_SIZE 10
typedef struct SqStack
{
ElemType *base;
ElemType *top;
int stacksize;
}SqStack;
bool Isempty(SqSt...
分类:
其他好文 时间:
2015-05-17 13:49:43
阅读次数:
105
1、利用栈,将中缀表达式(即标准形式的表达式)转换为后缀式例:a+b*c+(d*e+f)*g转换成abc*+de*f+g*+数据结构:一个操作符栈方法:(1)读入字符(2)如果字符为操作数,直接输出(3)如果字符为左圆括号,压入栈中(4)如果字符为非括号操作符,则比较当前操作符与栈顶操作符的优先级:...
分类:
其他好文 时间:
2015-05-13 18:37:59
阅读次数:
102
思路:
在算法中设置一个栈,每读入一个空号
一:若是右括号: '}' ' )' ']'(两种情况):
1:使置于栈顶的最急迫的期待得以消解,需将栈顶元素出栈;
2:不合法的情况,即与栈顶的最急迫的期待不匹配,需将其(括号)压栈;
二:若是左括号:'(' '{' '['
作为一个新的更急迫的期待压栈;
顺序栈的代码不再赘述:点击打开链接
//括号匹配
#inc...
分类:
其他好文 时间:
2015-05-09 17:38:45
阅读次数:
109
思路:
栈作为输入缓冲区,每当从终端了接受一个字符之后先做如下判别:
1:若是退格符#,从栈顶删去一个元素,即出栈Pop;
2:若是退行符@,将字符栈清空,即clear;
3:若不是#或@,即为有效字符,将该字符入栈,即Push;
顺序栈的代码:点击打开链接
只需将 typedef int ElemType -------->>> typedef char ElemType
#in...
分类:
其他好文 时间:
2015-05-09 16:36:58
阅读次数:
107
顺序栈的代码:
不再赘述:点击打开链接
//栈的应用-----进制转化
#include"stack.h"
int main()
{
Stack st;
InitStack(&st);
int select;
int num1; //要转化的数
int num2; //转化之后各个位的数
int flag = 1; //控制循环结束
while(flag...
分类:
其他好文 时间:
2015-05-09 16:33:04
阅读次数:
112