数据接口复习 3 stack and queue

stack:

1.top and bottom.统一在top端增加和删除。

Attention:

函数 delete(x) 是将top端的元素删除并且赋值给x

实现:通过linked list实现 。

public class StackLi
{ public StackLi( ){ topOfStack = null; }
public boolean isFull( ){ return false; }
public boolean isEmpty( ){ return topOfStack = = null; } public void makeEmpty( ){ topOfStack = null; }
public void push( object x )
public object top( )
public void pop( ) throws Underflow public object topAndPop( )
private ListNode topOfStack; }

通过数组实现。

主要的应用:用于进行括号的匹配  尝试编程中因为之前没有怎么用过stack

主要用到的几个方法: add(x),pop(),firstelement()

 public void testMatch(String expression){
           matchstack=new Stack<Integer>();
           int len=expression.length();
           for(int i=0;i<len;i++){
               char getCh=expression.charAt(i);
               if(getCh==‘(‘){
                   matchstack.add(i);
               }else if(getCh==‘)‘){
                    try{
                   matchstack.pop();
                    }catch(Exception e){
                        System.out.println(i+"missing 左括号");
                    }

               }
           }
         while(!matchstack.isEmpty()){
             System.out.println(matchstack.firstElement()+"missing 右括号");
             matchstack.pop();
         }
       }

表达式:infix expression中缀表达式,也就是我们正常意义上理解的。

posfix expression 后缀表达式 prefix expression 前缀表达式

后缀表达式---->中缀表达式

具体的算法见表达式转换随笔。。

时间: 2024-10-07 05:00:55

数据接口复习 3 stack and queue的相关文章

java中List、Map、Set、Collection、Stack、Queue等的使用

java中这几个东西是比较常用的,虽然我用的不多,也正是因为用的不多,所以我一直搞不清楚他们之间的具体用法以及相互之间的关系,现在特单独作为一个东西来总结一下. 本文参考一下资料: 1.<java编程思想>一书第11章 2.http://blog.sina.com.cn/s/blog_a345a8960101k9vx.html 3.http://f51889920.iteye.com/blog/1884810 4.http://blog.csdn.net/speedme/article/det

STL 笔记(三) 容器适配器 stack、queue、priority_queue

栈 stack 栈 stack 是一种先进后出的(First In Last Out, FILO)的数据结构.在 STL中,stack 底层容器默认使用的是deque, 也可以自己指定用 vector 或 list 容器,然后将其接口适配为栈的接口.部分源代码: // stack source code (部分) template <class _Tp, class _Sequence __STL_DEPENDENT_DEFAULT_TMPL(deque<_Tp>) > class

C++ Primer 学习笔记_55_STL剖析(十):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例

七种基本容器:vector.deque.list.set.multiset.map.multimap 一.容器适配器 stack queue priority_queue stack.queue.priority_queue 都不支持任一种迭代器,它们都是容器适配器类型,stack是用vector/deque/list对象创建了一个先进后出容器:queue是用deque或list对象创建了一个先进先出容器:priority_queue是用vector/deque创建了一个排序队列,内部用二叉堆实

特殊集合(stack、queue、hashtable的示例及练习)

特殊集合:stack,queue,hashtable stack:先进后出,一个一个的赋值一个一个的取值,按照顺序. .count           取集合内元素的个数 .push()         将元素一个一个推入集合中 .pop()           将元素一个个弹出集合 .clear()         清空集合 queue:先进先出,一个一个的赋值一个一个的取值,按照顺序. .count              取集合内元素的个数 .Enqueue()      进队列集合 .

集合,stack,queue,dictionary,ArrayList,list&lt;T&gt;

哎呀我去,昨天搞那个全排列和寻路算法搞得我脑袋都大了,忘写博了,唉 ,早起补上....... 今天的东西挺多,但没什么难度. 集合:创建和管理相关对象组的第?种?式就是:创建对象集合. 集合提供?种灵活的处理?法. 与数组不同,处理的对 象组可根据程序更改的需要动态地增?和收缩. 对于某 些集合,您可以为放?该集合的任何对象分配?个“键”, 以便使?该键快速检索对象. 注意: 集合是类,因此必须声明新集合后,才能向该集合 中添加元素.集合分为两种类型: ?泛型集合和泛型集合. 使??泛型集合的

java中List、Map、Set、Stack、Queue、Collections等的使用

java中List.Map.Set.Stack.Queue.Collections等的使用 List 创建方法: List<String> list=new ArrayList<>(); add(val) : 添加元素. get(index) : 获取元素. remove(index) : 删除元素. remove(Object o) : 按照元素内容删除 {eg:list.add("marry") ; list.remove(0)==list.remove(&

实时股票数据接口 ZT

股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口1.http/javascript接口取数据1.1Sina股票数据接口以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006这个url会返回一串文本,例如:var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.2

在nginx中使用lua直接访问mysql和memcaced达到数据接口的统一

安装nginx参见<nginx+lua+redis构建高并发应用> 让nginx 中的nginx_lua_module支持mysql 和memcache 下载 https://github.com/agentzh/lua-resty-memcached https://github.com/agentzh/lua-resty-mysql 对于访问接口的统一有很多的处理方式,这里介绍使用nginx lua 访问mysql并用memcache缓存起来. 配置如下: ... location /ge

股票财经数据接口(二)

最近股票大跌,打算做点数据分析.转个数据接口,等我完成数据分析有具体结论再写出来吧. 透露个要点,08年是缩量下跌,15年是放量下跌,明显有抛货之嫌,具体是谁不好说. 之前使用了新浪的股票数据,由于新浪http/javascript缺少一些数据,用chrome自带的开发工具监视腾迅财经HTTP信息,得到以下获取股票数据的方法. 以五粮液为例,要获取最新行情,访问数据接口: http://qt.gtimg.cn/q=sz000858 返回数据: v_sz000858="51~五 粮 液 ~0008