码迷,mamicode.com
首页 >  
搜索关键字:一个栈    ( 1020个结果
两栈共享空间
1 思路 如果有两个类型相同的栈,我们为它们分别开辟了数组空间。极有可能是一个栈已经满了,再入栈就溢出了,而另一个栈却还有很多存储空间。这又何必呢?我们完全可以用一个数组来存储两个栈,只不过需要一些小的技巧。 我们的做法如下,数组有两个端点,两个栈有两个栈底。让一个栈的栈底为数组的始端,即数组下标为 ...
分类:其他好文   时间:2016-07-09 11:49:19    阅读次数:122
凸包问题——Graham Scan
Graham Scan 概述: 对于凸多边形的定义不在这里做详细叙述,这里给出算法的实现原理。 Step 1: 找出x值最小的点的集合,从其中找出y值最小的点作为初始点 Step 2: 获得新序列后,p[n]=p[1] Step 3: 把p[0],p[1],p[2]放入一个栈,从i=3循环到i=n- ...
分类:其他好文   时间:2016-07-08 21:33:11    阅读次数:162
自定义栈的实现及使用两个栈模拟队列
一,使用单链表实现栈 ①栈需要一个栈顶指针 ②栈的基本操作有出栈和入栈,以及判断栈是否为空 ③单链表中每个结点表示一个栈元素,每个结点有指向下一个结点的指针。因此,在栈内部需要实现一个单链表。代码如下: 二,使用两个栈实现队列 ①栈是先进后出,而队列是先进先出。要实现队列,就需要实现队列的基本操作, ...
分类:其他好文   时间:2016-07-02 20:13:59    阅读次数:201
用一个栈实现另一个栈的排序
要求:使用一个辅助栈实现栈的排序 思路: 要排序的栈为stack,辅助栈为help stack弹出一个元素cur,判断cur与help栈顶元素的大小,若小于或等于,则直接压入help, 否则,将help中小于cur的元素一次压入stack,之后将cur压入help, 重复上面的过程,直到stack为 ...
分类:编程语言   时间:2016-06-27 13:49:31    阅读次数:136
第六条:消除过期的对象引用
Java的垃圾回收机制并不代表我们不需要考虑内存管理的问题。 考虑: 这是自己编写的一个栈。 这段程序没有任何明显的错误,但这个程序中隐藏着一个问题,内存泄漏。 如果一个栈先是增长,然后收缩,那么从栈中弹出来的对象不会被当作垃圾回收,这是因为栈内部仍然维护着这些过期对象的引用,所谓过期引用是指ele ...
分类:其他好文   时间:2016-06-24 22:12:42    阅读次数:259
有权并查集,Poj(1988)
题目链接:http://poj.org/problem?id=1988 题目大意: 有n个从1到n编号的箱子,将每个箱子当做一个栈,对这些箱子进行p次操作,每次操作分别为以下两种之一: 输入 M x y:表示将编号为x的箱子所在的栈放在编号为y的箱子所在栈的栈顶.输入 C x:计算编号为x的所表示的 ...
分类:其他好文   时间:2016-06-24 01:51:26    阅读次数:243
反汇编理解函数调用过程
一张图说明我的理解: 画的是新开辟栈帧的过程,退出当前栈帧的过程与之相反。pop edi ,pop esi , pop ebx ,mov esp,ebp ,pop ebp 。之后,edi,esi,ebx恢复原来状态,ebp指向上一个栈帧栈底,esp指向上一个栈帧栈顶。 ...
分类:其他好文   时间:2016-06-18 22:18:58    阅读次数:243
深入java虚拟机(九)--常见问题总结
1.     JVM运行时内存结构 1.由如下图构成。Runtime Data Area有如下几个区,其中PC程序计数器、虚拟机栈和本地方法栈是线程独享的,堆和方法区是线程共享的。Classload用来加载class文件,执行引擎用来执行程序,本地方法接口调用本地方法库。 2.java stack比较简单,每一个都是一个栈帧,每个栈帧由三部分构成。局部变量区、操作数区和帧数据区。局部变量是...
分类:编程语言   时间:2016-06-17 11:13:23    阅读次数:227
面向对象<基础>知识点
1 使用了未实例化的对象会出现java.lang.NullPointException 2 一个栈内存空间只能指向一个堆内存空间,如要指向其他堆内存空间,需先断开当前指向 3 只要是被封装的属性就必须通过gette/setter方法设置和取得 4 匿名对象就是没有明确给出名字的对象。一般匿名对象只使 ...
分类:其他好文   时间:2016-06-16 23:14:10    阅读次数:255
Dijkstra的双栈算术表达式的求值算法
例如需要计算 ( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) ) 我们以字符串的形式输入该表达式,利用两个栈来完成这个操作,其中一个栈保存运算符,一个栈保存操作数,过程是这样的: 表达式由括号,运算符号,操作数(数字)组成,从左到右处理这四种情况. 将操作数压入操作数栈. 将运算符压 ...
分类:编程语言   时间:2016-06-16 20:10:32    阅读次数:309
1020条   上一页 1 ... 64 65 66 67 68 ... 102 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!