首先我要说一下,我得作业我尽力了,但是能力有限,还需练习。 四则运算,改进代码流程: 1.手动输入算式(属于中缀表达式) 2.将中缀表达式转化成后缀表达式 生成out数组 3.一个操作数栈,一个运算符栈,按照后缀表达式计算方法将out中的字符分别放入两个栈 4.当操作数栈只有一个数时结束计算。 代码 ...
分类:
其他好文 时间:
2016-09-15 06:29:02
阅读次数:
195
36.输入两个链表,找出它们的第一个公共结点。 解题思路:这里主要是把两个链表的节点都放入两个栈中,这样就可以按照出栈的方式来比较节点,因为单链表只要是有相同的节点,那么之后的节点也都是一样的,所以如果出栈的节点不相同的话就可以返回之前保存的commonNode变量,这么变量的值就是第一个共同的节点 ...
分类:
编程语言 时间:
2016-09-01 10:43:00
阅读次数:
170
思路:一个栈如stack1始终是用来存储数据,当另外一个栈不为空时直接从stack2中弹出,若为空时,则将stack1中的值全部压入到stack2中,再将stack2中元素的值取出即可。 ...
分类:
其他好文 时间:
2016-08-27 18:03:39
阅读次数:
128
bzoj3942[Usaco2015 Feb]Censoring 题意: 有一个S串和一个T串,不断地在S串里匹配T串,然后将其删除。S串、T串长度≤1000000。 题解: 用1、2两个栈,每次将S串的当前字符压入1栈,当前匹配到T串的位置压入2栈,如果匹配出一个T串,则让1、2栈中匹配T串的子串 ...
分类:
其他好文 时间:
2016-08-26 19:51:33
阅读次数:
378
1.插入元素进入队列时,将元素push到stack1中。当有元素出队列时,先将所有元素插入到stack2中,然后进行出栈。出栈结束后,再将剩余元素放回stack1中。这个算法不是最优的。接下来介绍一个从剑指offer中看到的一种算法。 2 入队列:直接将元素插入stack1中。 出队列:如果stac ...
分类:
其他好文 时间:
2016-08-26 06:34:44
阅读次数:
171
【华为练习题】用两个栈来模拟队列(中级)题目栈的特点是后进先出,队列的特点是先进先出。所以,用两个栈S1和S2模拟一个队列时,
要求两个栈S1和S2的长度都是5。
要求实现以下函数:
enQueue 将元素value插入队列,若入队列成功返回true,否则返回false
deQueue 从队列中取出一个元素放入value,若出队列成功返回true,否则返回false。
isEmptyQue...
分类:
其他好文 时间:
2016-08-23 13:24:47
阅读次数:
163
题意:有两个栈A和B,有3种操作:push,pop,merge。前两种都是栈的操作,最后一种表示的是如果“merge A B”,那么把B中的元素全部放到A中,且满足先入后出的栈原则。 分析:显然,我们给每一个节点配备一个时间戳即可。我一开始的思路是直接开两个优先队列进行直接模拟,merge操作就是把 ...
分类:
其他好文 时间:
2016-08-21 16:31:14
阅读次数:
150
1.第一种方法: 2.第二种方法: 总结: 这两种方法的不同之处在于: 1.第一种方法:只向中转栈容器拷贝一次,直至这个栈容器空。(即自建队列元素进入的那个栈容器); 2.第二种方法:先向中转栈容器中拷贝,每次操作完后再将中转容器中剩余的元素拷贝回原来的栈容器(即自建队列元素进入的那个栈容器); 困 ...
分类:
其他好文 时间:
2016-08-16 23:40:28
阅读次数:
250
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 入队:将元素进栈A 出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈; 如果不为空,栈B直接出栈。 1 class Solution 2 { 3 public ...
分类:
其他好文 时间:
2016-08-11 12:41:45
阅读次数:
130
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 ...
分类:
其他好文 时间:
2016-08-10 22:39:55
阅读次数:
111