后缀表达式
1.概念解析
实现逆波兰式的算法,难度并不大,但为什么要将看似简单的中序表达式转换为复杂的逆波兰式?原因就在于这个简单是相对人类的思维结构来说的,对计算机而言中序表达式是非常复杂的结构。相对的,逆波兰式在计算机看来却是比较简单易懂的结构。因为计算机普遍采用的内存结构是栈式结构,它执行先进后出的顺序。
2.实现算法1.算法一
初始化两个栈:运算符栈s1和储存中间结果的栈s2;
从左至右扫描中缀表达式;
遇到操作数时,将其压s2;
遇到运算符时,比较其与s1栈顶运算符的优先级:
如果s1为空,或栈顶运算符为左括号“(”,则直接将此运算符入栈;
否则,若优先级比栈顶运算符的高,也将运算符压入s1;
否则,将s1栈顶的运算符弹出并压入到s2中,再次转到(4.1)与s1中新的栈顶运算符相比较;
遇到括号时:(1) 如果是左括号“(”,则直接压入s1(2) 如果是右括号“)”,则依次弹出s1栈顶的运算符,并压入s2,直到遇到左括号为止,此时将这一对括号丢弃
重复步骤2至5,直到表达式的最右边
将s1中剩余的运算符依次弹出并压入s2
依次弹出s2中的元素并输出,结果的逆序即为中缀表达式对 ...
Stack
1.简介
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
2.基本算法
123456781.进栈(PUSH)算法 ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②); ②置TOP=TOP+1(栈指针加1,指向进栈地址); ③S(TOP)=X,结束(X为新进栈的元素);2.退栈(POP)算法 ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②); ②X=S(TOP),(退栈后的元素赋给X): ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
3.项目实践
1234567891011121314151617181920212223242526272 ...
CSS Position
Css 详细解读定位属性 position 以及参数参考链接
简介position 定位属性,是CSS中非常重要的属性。除了文档流布局,就是定位布局了。但是很多人都不清楚position参数。详细解读一下position 以及参数。
1.W3c介绍
定义和用法
123456789position 属性规定元素的定位类型。说明这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。默认值: static继承性: no版本: CSS2JavaScript 语法: object.style.position="absolute"
可能的值
123456789101112131415161718值 描述absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" ...
H5 Overview
HTML5 是定义 HTML 标准的最新的版本。 该术语通过两个不同的概念来表现:
它是一个新版本的HTML语言,具有新的元素,属性和行为,它有更大的技术集,允许构建更多样化和更强大的网站和应用程序。这个集合有时称为HTML5和它的朋友们,不过大多数时候仅缩写为一个词 HTML5。设计为所有Open Web开发人员都可以使用,此引用页面链接到许多关于HTML5技术的资源,根据其功能分为几个组。
语义:能够让你更恰当地描述你的内容是什么。
连通性:能够让你和服务器之间通过创新的新技术方法进行通信。
离线 & 存储:能够让网页在客户端本地存储数据以及更高效地离线运行。
多媒体:使 video 和 audio 成为了在所有 Web 中的一等公民。
2D/3D 绘图 & 效果:提供了一个更加分化范围的呈现选择。
性能 & 集成:提供了非常显著的性能优化和更有效的计算机硬件使用。
设备访问 Device Access:能够处理各种输入和输出设备。
样式设计: 让作者们来创作更加复杂的主题吧!
2.新增语义标签123456789101112131415161718HTM ...
UML Overview
1.简介统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。
2.项目实际操作
整体设计
概要设计
“首页商品的特定显示”模块概要设计
1.1. 功能描述
1.2. 用例图
1.3. 界面原型
详细设计
“首页商品的特定显示”模块设计
流程图
类图
时序图
模块方法
数据库设计
3.时序图
4. 用例图
5. 类图
6. 流程图Edraw
注解Service(Spring MVC)
1.程序环境SpringSpringMVCMyBatisejdk 1.8Tomcat 7.0
2.错误现象
后台并没有报任何错误!就是进入不了整个动态Web项目页面。
导致整个的Controller层,没有响应。
3.错误导致原因
因为业务所需,我在PC端的indexController 新增一个模块服务。
@Autowired (xxxSerice)
但是这个xxxService的实现类并没有写注解@Service(我给忘了!!!)
4.解决方法
添加注解@Service
完美!!
MultipartFile
MultipartFile类(Spring框架)
起源 : 在学习一个商城的web应用时,发现UpdateFile的控制器内部使用的就是这个技术类。
1. 配置文件SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver用于处理表单中的file
1234567<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" p:maxUploadSize="5400000" p:uploadTempDir=&quo ...
UnsupportedOperationException
mybatis报错java.lang.UnsupportedOperationException原因及处理方法
起因
今天在请求数据库数据时报错java.lang.UnsupportedOperationException,从字面上理解错误的含义就是不支持的操作异常,后面定位到错误发生在数据库sql语句中,具体原因就是resultType=”java.util.List”有问题。返回的结果是一个List类型的集合,所有我用了这个resultType,但是不对的。需要使用string。
解释
下面是我百度出来,别人总结的resultType可用类型
1234resultType: 1. 基本类型 :resultType=基本类型 2. List类型: resultType=List中元素的类型 3. Map类型 单条记录:resultType =map
多条记录:resultType =Map中value的类型
12345671. 如果返回值为基本类型,则resultType=基本类型,比如resultType=java.l ...
Spring MVC Overview
1.介绍1234567891011121314Spring MVC是Spring提供的一个强大而灵活的web框架。`借助于注解`,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中 的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。Spring MVC是Spring家族中应用于Web应用的一个模块,是Spring提供的一个基于MVC设计模式的Web开发框架,可以将它理解为Servlet。在MVC模式中,Spring MVC作为控制器(Controller)来建立模型与视图的数据交互,是结构最清晰的JSP Model2实现,可以说是一个典型的MVC框架。除此之外,Spring MVC框架采用松耦合、可插拔的组件结构,具有高度可配置性,比起其他的MVC框架更具有扩展性和灵活性。并且它本身就是Spring家族的一部分,与Spring框架整合更是天衣无缝。在Spring MVC框架中,Controller替换Servlet来担负控制器的职责。Contr ...
Tomcat报错
1.错误展示
2.错误的指向
1.2. 3. 4. 5.
–
4.错误的解决
首先检查下eclipse是否设置了Project自动编译了:eclipse—》Project —》Build Automatically,该选项必选打勾,如果没有打勾则打勾后就行。如图:
注意这里有工程也有全局的,必须两个都设置对了才可以编译。
如图:
具体工程的设置,右键工程-》Properties—》Java Compiler—》Building
全局的设置:eclipse—》Preferences—》Java Compiler—》Building
以上操作完后,如果还不行,可以清理下,让eclipse重新编译下:eclipse—》Project—》clean 就可以生成.class文件
–
5.错误的起因123最近在项目开发过程中遇到eclipse不能自动编译生成class文件,当时很纳闷,每次修改代码后运行都是修改 前的效果,没辙了,只好反编译原来的class文件,结果发现,class文件里并没有看到修改好的代码,所以应该就是修改后的代码没有重新编译的结果吧。
–目前来 ...