栈(Stack)
来源:互联网 发布:手机版收音机不用网络 编辑:程序博客网 时间:2024/06/13 06:10
栈在编程语言中用来对表达式求值。请使用StackDemo对下面表达式求值,其中,“+“表示将后面的字母压进栈,而”-”表示弹出栈顶字母并打印出来:
+U+n+c---+c+r+t---+a-+i-+n+t+y---+--r+u--+c+e+s---
已知StackDemo如下:
- import java.util.LinkedList;
- public class StackDemo<Object>
- {
- private LinkedList<Object> storage = new LinkedList<Object>();
- public void push(Object o){storage.addFirst(o);}
- public Object peek(){return storage.getFirst();}
- public Object pop(){return storage.removeFirst();}
- public boolean empty(){return storage.isEmpty();}
- public String toString(){return storage.toString();}
- }
。求表达式:
- import java.util.*;
- class ExpressionInStack
- {
- public static void main(String[] args)
- {
- char[] c;
- String s="+U+n+c---+c+r+t---+a-+i-+n+t+y---+--r+u--+c+e+s---+I+ +l+o+v+e+ +l+i+f+e";
- c=s.toCharArray();
- StackDemo<Character > sd=new StackDemo<Character >();
- for(int i=0; i<c.length; i++){
- if(c[i]=='+'){
- i++;
- if(!(c[i]=='+')&&!(c[i]=='-'))
- sd.push(c[i]);
- }
- if(c[i]=='-'){
- if(!sd.empty()){
- System.out.print(sd.pop());
- }
- }
- }
- System.out.println(sd);
- }
- }
----------此题目载于《java编程思想》
解析:此题目应注意4点,1、将String转化为char 2、char 与 character的关系 3、在泛型中,基本类型不起作用。4、LinkedlList
的方法getFirst()在使用前要判断容器是否为空,否则会报错。
- 栈(Stack)
- 栈(stack)
- STL:栈(stack)
- STL - stack(栈)
- 栈(stack)
- C++栈(stack)
- 栈(Stack)
- Stack(栈)
- 栈(stack )数据结构
- 铁轨-栈(stack)
- 栈(stack)
- stack(栈)
- 栈(Stack)
- 顺序栈(Stack)
- 栈(stack)
- stack栈(STL)
- 栈(Stack)
- 栈开解(stack unwinding)
- 获取图形对象的属性及选入新的图形对象
- NS2学习笔记(1)
- 正式开通这个空间
- X3D文件中的事件、路由和脚本
- 用ThinkPHP制作简单的MVC-BLOG教程(1)
- 栈(Stack)
- 在线播放代码
- OracleHelper类
- 日常上网要注意的事项
- 20080828 python HelloWorld
- c# 中调用存储过程集
- java ,c# 解决安全沙箱问题
- 在ITPub上发表文章《透析QTP自动化测试框架SAFFRON》
- dynamic add rows into table (support firefox or IE5+)