转载请注明出处: 题目:用两个队列模拟一个栈,即用两个队列的出队和入队操作,来实现栈的出栈和入栈操作。 思路:稍微画下草图,便不难想出该题的解决方法,思路如下: 假设有两个队列Q1和Q2,当二者都为空时,入栈操作可以用入队操作来模拟,可以随便选一个空队列,假设选Q1进行入栈操作,现在假设a,b,c依次入栈了(即依次进入队列Q1),这时如果想模拟出栈操作,则需要将c出栈,因为在栈顶...
分类:
其他好文 时间:
2014-05-07 06:54:12
阅读次数:
466
1.CPU根据中断码如何找到中断处理程序
要定位中断处理程序,就需要找到中断处理程序的段地址和偏移地址,如果根据中断码找到他们?这就引入中断向量表,CPU用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址。
2.使用中断类型码找到中断向量,并用它设置CS和IP,这个操作是由CPU硬件自动完成的。这个过程成为中断过程:
(1)从中断信息中取得中断类型码
(2)标志寄存器的值入栈...
分类:
其他好文 时间:
2014-05-05 12:57:22
阅读次数:
318
一、后缀表达式求值
后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。
假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下:
(1)遍历表达式,遇到的数字首先放入栈中,依次读入6 5 2 3 此时栈如下所示:
(2)接着读到“+”,则从栈中弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。...
分类:
其他好文 时间:
2014-05-03 16:59:21
阅读次数:
309
把一般式子转换成逆波兰式。
这里的都是加括号的,难度降低点。
Example
Input:
3
(a+(b*c))
((a+b)*(z+x))
((a+t)*((b+(a+c))^(c+d)))
Output:
abc*+
ab+zx+*
at+bac++cd+^*
知道其特点就好办:
1 遇到字母一定是可以输出的
2 遇到操作符号就入栈
3 遇到括号')',就出栈...
分类:
其他好文 时间:
2014-05-03 15:35:28
阅读次数:
317
stackstack模板类的定义在的头文件中;定义stack对象的范例如下;stack
s;stack s;stack的基本操作:s.top() ; //栈顶s.push(a) ; //元素a入栈s.pop();
//栈顶元素出栈s.empty(); //判断栈空,如果为空,则返回trues.s.....
分类:
其他好文 时间:
2014-04-29 20:55:15
阅读次数:
535
一、可变参数函数实现原理C函数调用的栈结构:可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall,
它是从右到左的,即函数中的最右边的参数最先入栈。本文地址:http://www.cnblogs.com/archimedes/p/variable-para...
分类:
编程语言 时间:
2014-04-29 15:53:26
阅读次数:
704
由中缀式转换成后缀式,同样使用栈,并运用一些规则来完成。规则介绍如下:
当读到的是操作数,立即输出。当读到的是运算符,则先从栈中弹出优先级高于自己的运算符(不包含括号),自己入栈。读到左括号入栈,读到右括号则将栈中元素出栈并输出,直到遇见左括号(括号都不输出)。输入为空后,将栈元素弹出并输出直到栈空。
注意,最后生成的后缀表达式是考虑了运算符优先级的,再配合逆波兰的无优先级概念这一性质...
分类:
其他好文 时间:
2014-04-29 13:24:21
阅读次数:
375
逆波兰记法又称为后缀记法,把操作符放置于操作数后面,计算过程通常用栈来实现的,通过栈来保存中间结果,使得逆波兰记法没有必要知道任何优先规则。
方法描述:当见到一个数时就把它推入栈中;在遇到运算符时该运算符就作用于从该栈弹出的两个数上,将结果推入栈中。
下面演示计算后缀表达式的过程。
后缀表达式:6 5 2 3 + 8 * + 3 + *
四个数字入栈:6 5 2 3(→栈生...
分类:
其他好文 时间:
2014-04-29 13:14:21
阅读次数:
378
1.jvm 内存结构
1)程序计数器
较小的内存区域,可以看作是当前线程所执行的字节码的行号指示器;每条线程独立;
2)java虚拟机栈
描述java方法执行的内存模型,即每个方法在执行的同时都会创建一个栈帧用户存储局部变量表、操作数栈、动态链接、方法出口等信息;即一个方法的调用直至完成的过程对应着一个栈帧的入栈到出栈的过程。同样是线程私有;
3)本地方法栈
对应虚拟机使用的nativ...
分类:
编程语言 时间:
2014-04-27 22:12:22
阅读次数:
440
原思路: 像括号配对一样,如果遇见select 就入栈,如果遇见from就出栈,直到栈为空,取得此时的位置,进行字符串截取。
实现方法:遇见字符s并且连续后5个字符elect 就+1,遇见字符f并且连续3个字符为rom就-1,当计数器结果为0时,返回当前字符的位置,然后进行字符串截取即可:
/****
* 获取截取位置
* @param selectSQL
* @retur...
分类:
数据库 时间:
2014-04-27 21:18:07
阅读次数:
406