算法
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