2013-12-10 19:22:29 qq523176585 阅读数 385
  • JavaWeb实战开发

    本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发

    3753 人正在学习 去看看 颜群
#include <stdio.h>

int main()
{
	int n, top, j;
	char str[10000],stack[5000];
	scanf("%d",&n);
	while (n--)
	{
		scanf("%s",str);
		if (str[0] == ')' || str[0] == ']')
		{
			stack[0] = '1';
		}
		else
		{
			for (top = 0,j=0; str[j] != '\0';j++)
			{
				if (str[j] == '(' || str[j] == '[')
				{
					stack[top] = str[j];
					top++;
				}
				else if (str[j] == ']')
				{
					if (stack[top-1] != '[')
					{
						stack[0] = '1';
						break;
					}
					else
					{
						stack[top-1] = '0';
						top--;
					}
				}
				else 
				{
					if (stack[top-1] != '(')
					{
						stack[0] = '1';
						break;
					}
					else
					{
						stack[top-1] = '0';
						top--;
					}
				}
			}
		}
		
		printf(stack[0] == '0'?"Yes\n":"No\n");
		
	}
	return 0;
}

2019-06-01 11:49:45 yp25843 阅读数 118
  • JavaWeb实战开发

    本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发

    3753 人正在学习 去看看 颜群

【数据结构】 栈的应用-括号匹配

实验要求:
括号匹配检验:假设表达式中允许包括两种括号:圆括号和方括号,其嵌套的顺序随意,即()或[([][])]等为正确的格式,[(])或([())等均为不正确格式。输入一个表达式,判断其中的括号是否能正确匹配。

代码实现:
1,头文件

#define MAX 100 //栈的最大值
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STACKSIZE 100
#define STACKNUMBER 10
#define OK 0
#define ERROR 1
#define OVERFLOW -2
typedef int Status;
typedef char  SElemType;  //元素类型

2.结构体

typedef struct
{
    SElemType *base;
    SElemType *top;
    int  stacksize;
} SqStack;

3.菜单

Status InitStack(SqStack &S);//构建一个空栈s
Status Pop(SqStack &S);//删除栈顶元素
Status Push(SqStack &S,SElemType e);//插入元素
Status Check(SqStack &S,SElemType e);//判断

4.函数实现

//构建一个空栈
Status InitStack(SqStack &S)
{
    S.base=(SElemType*)malloc(STACKSIZE*sizeof(SElemType));
    if(!S.base)
        exit(-2);
    S.top=S.base;
    S.stacksize=STACKSIZE;
    return OK;
}
//插入元素
Status Push(SqStack &S,SElemType e)
{
    if(S.top-S.base>=S.stacksize)
    {
        S.base
       =(SElemType*)realloc(S.base,((S.stacksize+STACKNUMBER)*sizeof(SElemType)));
        if(S.base==NULL) return ERROR;
        S.top=S.stacksize+S.base;
        S.stacksize+=STACKNUMBER;
    }
    *S.top++=e;
    return OK;
}
//删除栈顶元素
Status Pop(SqStack &S)
{
    if(S.top==S.base)
    {
        return ERROR;
    }
    --S.top;
    return OK;
}
//检查元素
Status Check(SqStack &S,SElemType e)
{
   if(e==')'&&*(S.top-1)=='('||e=='}'&&*(S.top-1)=='{'||e==']'
   &&*(S.top-1)==']'||e=='>'&&*(S.top-1)=='<')
    {
        Pop(S);
    }
  else
  {
       Push(S,e);
  }
}

5.main函数

int main()
{   SqStack S;
    int i;
    char str[1000];
    InitStack(S);
    scanf("%s",&str);
    for(i=0;i<strlen(str);i++)
    {
     if(str[i]=='('||str[i]=='{'||str[i]=='['||str[i]=='<')
            {
              Push(S,str[i]);
            }
       else if(str[i]==')'||str[i]=='}'||str[i]==']'||str[i]=='>')
       {
           Check(S,str[i]);
       }
    }
    if(S.top==S.base)
    {
        printf("没有语法错误,括号匹配成功");
    }
    else
    {
        printf("有语法错误,括号匹配失败");
    }
    return 0;
}
2015-09-16 14:23:44 B08370108 阅读数 392
  • JavaWeb实战开发

    本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发

    3753 人正在学习 去看看 颜群

栈的一个简单应用,括号匹配的问题,

为了简便起见,就讨论()[ ]  

去掉繁琐的return ERROR  栈容量不够处理。

例代码:

#include<stdio.h>
#include<string.h>
#include<malloc.h>

#define InitStackSize 1000

typedef struct SqStack
{
	char *top,*base;
	int stacksize;
}SqStack;

void InitSqStack(SqStack &s)
{
	s.base=s.top=(char*)malloc(InitStackSize*sizeof(char));
	s.stacksize =InitStackSize;
}

void PushSqStack(SqStack &s,char ch)
{
	*s.top=ch;
	s.top++;
}

bool EmptyStack(SqStack s)
{
	if(s.base==s.top) return true;
	else return false;
}

void PopSqStack(SqStack &s)
{
	s.top--;
}

char GetStackTop(SqStack s)
{
	if(EmptyStack(s)) return '#';
	else return *--s.top;
}

int BracketMatch(SqStack &s,char *st)
{
	char *p=st;
	char ch;
	while(*p!='\0')
	{
		switch(*p)
		{
			case '(':PushSqStack(s,*p);break;
			case '[':PushSqStack(s,*p);break;
			case ')':
			if(EmptyStack(s)) return 0;
		 	ch=GetStackTop(s);
 			if(ch=='(') PopSqStack(s);			
			else return 0; 
			break;	
			case ']':
			if(EmptyStack(s)) return 0;
			ch=GetStackTop(s);
			if(ch=='[') PopSqStack(s);
			else return 0;
			break;
			default:break;	
		}
		p++;
	}
	if(!EmptyStack(s)) return 0;
	return 1;
}

int main()
{
	SqStack stack;
	char str[InitStackSize]; //just including '('')''['']'
	printf("Input the bracket string:\n");
	while(scanf("%s",&str)!=EOF)
	{
		InitSqStack(stack);
		if(BracketMatch(stack,str)) printf("Match success!\n");
		else printf("Fail to match.\n");
	}
	
	return 0;
} 


2011-03-23 20:32:00 baoyiming1991 阅读数 5171
  • JavaWeb实战开发

    本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发

    3753 人正在学习 去看看 颜群

假设表达式中允许包含两种括号:圆括号和方括号,其嵌套顺序随意,及([]())或[([][])]等均为正确的格式,[(])或([())或(()]均为不正确的格式。

匹配算法的思想是:

首先将第一个括号压入栈,然后从第二个括号开始,如果与栈顶元素能匹配,能将栈顶元素弹出;如果不匹配,则将该元素压入栈中。

当带匹配字符串遍历结束后,检查栈是否为空,为空则表示匹配成功了,如果非空则表示还有括号未能匹配,即该字符串匹配失败。

具体代码:

 

2017-04-21 18:13:38 qq_29721419 阅读数 4651
  • JavaWeb实战开发

    本课程详细讲解了以下内容:     1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程     2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例     3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题      4.session与cookie问题及application、cookie补充说明及四种范围对象作用域      5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别      6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据      7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)      8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析      9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)     1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)      11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet      12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题      13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove      14.过滤器、过滤器通配符、过滤器链、监听器      15.session绑定解绑、钝化活化      16.以及Ajax的各种应用      17. Idea环境下的Java Web开发

    3753 人正在学习 去看看 颜群

数据结构——栈实现括号匹配

真正学习之后,才发现那些所谓的大婶不过是多用功了些。不知道以前为什么不亲自动手做做,原来这么简单。敲打
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
/**栈的链式存储**/
typedef struct Data{
	char c;
};
typedef struct Stack{
	Data data;
	Stack *top;	//指向栈顶元素
};
/**初始化空栈**/
void InitStack(Stack *S){
	S->top = NULL;
}
/**判断是否为空栈**/
int StackEmpty(Stack S){
	//为空返回1否则返回0
	if(S.top==NULL) return 1;
	else return 0;
}
/**返回栈顶元素**/
void GetTop(Stack S,Data *d){
	if(StackEmpty(S)==1)
		printf("It's an empty stack!");
	else{
		d->c = S.top->data.c;
	}
}
/**向栈顶插入新元素 入栈**/
void PushStack(Stack *S,Data d){
	Stack* p = (Stack *)malloc(sizeof(Stack));
	p->data.c = d.c;
	p->top = S->top;
	S->top = p;
}
/**从栈顶删除元素 出栈**/
void PopStack(Stack *S,Data *d){
	if(StackEmpty(*S)==1){
		printf("It's an empty stack!\n");
	}else{
		Stack *p = S->top;
		S->top = p->top;
		d->c = p->data.c;
	}
}
/**清空栈**/
void ClearStack(Stack *S){
	if(StackEmpty(*S)==1){
		printf("It's already an empty stack!\n");
	}else{
		S->top = NULL;
	}
}
/**打印栈内信息**/
void PrintStack(Stack S){
	if(StackEmpty(S)==1){
		printf("It's an empty stack!\n");
	}else{
		printf("name----age\n");
		while(S.top!=NULL){
			printf("%s\n",S.top->data.c);
			S.top = S.top->top;
		}
	}
}
/**检查右括号与栈顶元素是否匹配**/
int Match(Data r,Data s){
	//匹配成功返回1
	if(r.c==')'&&s.c=='('){
		return 1;
	}else if(r.c=='}'&&s.c=='{'){
		return 1;
	}else if(r.c==']'&&s.c=='['){
		return 1;
	}else{
		return 0;
	}
}
/**括号匹配**/
void CheckMatch(char *m,Stack *S){
	Data r,s;
	while(*m){
		switch (*m){
		case '(':
		case '{':
		case '[':
			s.c = *m;
			PushStack(S,s);
			*m++;
			break;
		case ')':
		case '}':
		case ']':
			if(StackEmpty(*S)){
				printf("Location %s can't match!\n",*m);
				return;
			}
			GetTop(*S,&s);
			r.c = *m;
			if(Match(r,s)){
				PopStack(S,&s);
				*m++;
			}else{
				printf("Location %c can't match!\n",*m);
				return;
			}
		default:
			*m++;
		}
	}
	if(StackEmpty(*S)){
		printf("Match successfully!\n");
	}else{
		printf("Can't match!Lack of right bracket!\n");
	}
}
void main(){
	char d[12];
	Stack S;
	char *p;
	printf("Input your expression:");
	gets(d);
	p = d;	//指向表达式
	InitStack(&S);
	CheckMatch(p,&S);
	system("pause");
}
没有更多推荐了,返回首页