码迷,mamicode.com
首页 >  
搜索关键字:一个栈    ( 1020个结果
关于队列与栈相互模拟的读书笔记
栈与队列都是比较高级的数据结构,虽然不难,但有时有些问题也比较灵活,在《编程之美》与《剑指offer》上就有一些这样的题目。用队列模拟栈、用站栈模拟队列,以及现实队列与栈的最大值与最小值求解,这些都是基础的,只要理解栈的后进先出与队列的先进先出特点即可解决。 1、栈模拟队列       用两个栈,元素从一个栈stackA进入,从另一个栈stackB出来。进队列时直接添加到stackA,出队列时...
分类:其他好文   时间:2014-05-23 02:28:08    阅读次数:213
加壳学习笔记(二)-汇编基础
简单的call函数过程 1.参数入栈,返回地址入栈。在一个栈帧里,call function的完整过程应该是这样的,call调用的过程要经历两个过程,一个是首先把调用函数之前的指令的下一条指令地址压入栈中(push ebp),作为返回地址,也就是保存旧栈地址,接着会跳转到被调函数的地址入口。呵呵,现在就是借此来恶补汇编哈。 2.代码区跳转。在执行被调函数的时候,为函数重新开辟栈帧,(mov ebp,esp)这句的意思是将旧栈顶换为新栈的底,这里的新栈一般是由函数专属的哈, 下面就是用sub esp, ...
分类:其他好文   时间:2014-05-22 11:34:25    阅读次数:189
数据结构4_链栈
用指针方式实现栈,相对于顺序栈,指针方式不用指定栈的大小,先定义一个栈节点类,再定义一个链栈类,为使链栈类能访问栈节点的元素,设链栈类为栈节点类的友元类。#includeusing namespace std;class LinkStack;class StackNode //设计每个节点的类型{ ...
分类:其他好文   时间:2014-05-20 08:45:15    阅读次数:288
[leetcode]Binary Tree Inorder Traversal @ Python
原题地址:http://oj.leetcode.com/problems/binary-tree-inorder-traversal/题意:二叉树的中序遍历。解题思路:这道题用递归解不难,所以应该考察的是非递归求解二叉树的中序遍历。我们使用一个栈来解决问题。比如一颗二叉树为{1,2,3,4,5,6,...
分类:编程语言   时间:2014-05-12 12:48:36    阅读次数:316
[leetcode]Binary Tree Preorder Traversal @ Python
原题地址:http://oj.leetcode.com/problems/binary-tree-preorder-traversal/题意:这题用递归比较简单。应该考察的是使用非递归实现二叉树的先序遍历。解题思路:使用一个栈。先遍历节点,然后将这个节点入栈,如果这个节点的左孩子非空,遍历左孩子,然...
分类:编程语言   时间:2014-05-12 12:09:39    阅读次数:327
UVA 580 - Critical Mass(DP)
题目链接:580 - Critical Mass 题意:一个栈,里面可以放L和U,有三个连续的U就是不安全的,问共有几种不安全的情况 思路:dp,dp[i][j][k],表示放到第i个,最后两个状态为j,k表示有没有出现不安全。然后去记忆化搜索一下就可以了 然后还有一种做法是,先考虑安全的情况,在用总情况(1 不过这题都没给数据范围,不过数据其实并不大,不然计算的时候种数一下就会超过范围了...
分类:其他好文   时间:2014-05-11 20:10:18    阅读次数:372
用两个栈实现一个队列 & 用两个队列实现一个栈
队列(先进先出)和栈(先进后出)都是常用的经常讨论的基本的数据结构,本文要讨论的是一对有趣的问题:如何用两个栈(队列)实现一个队列(栈),下面将分别说明,并附示例代码。 1、用两个栈实现一个队列 基本思路:初始有两个空栈s1和s2,当入队列是,将元素加入s1,而出队列则从s2出,当然s1与s2之间存...
分类:其他好文   时间:2014-05-08 15:12:30    阅读次数:397
两个队列实现一个栈
转载请注明出处:    题目:用两个队列模拟一个栈,即用两个队列的出队和入队操作,来实现栈的出栈和入栈操作。    思路:稍微画下草图,便不难想出该题的解决方法,思路如下:    假设有两个队列Q1和Q2,当二者都为空时,入栈操作可以用入队操作来模拟,可以随便选一个空队列,假设选Q1进行入栈操作,现在假设a,b,c依次入栈了(即依次进入队列Q1),这时如果想模拟出栈操作,则需要将c出栈,因为在栈顶...
分类:其他好文   时间:2014-05-07 06:54:12    阅读次数:466
从零开始开发Android版2048 (五) 撤销的实现
本篇的内容是,在前一篇的基础上加入了撤销的功能。撤销其实就是将当前的用户界面恢复到这次滑动值前的样子。我实现撤销的主要原理是,将每次滑动后界面上的格子和对应的数字记录下来,当然还有分数,把这些数据写入一个栈中,然后点击撤销操作的时候,将栈顶pop掉,读取下一个栈中的对象,并根据对象中存储的数据重新绘制界面。...
分类:移动开发   时间:2014-05-04 18:59:57    阅读次数:442
深入理解JAVA虚拟机--读书笔记
1.jvm 内存结构 1)程序计数器 较小的内存区域,可以看作是当前线程所执行的字节码的行号指示器;每条线程独立; 2)java虚拟机栈 描述java方法执行的内存模型,即每个方法在执行的同时都会创建一个栈帧用户存储局部变量表、操作数栈、动态链接、方法出口等信息;即一个方法的调用直至完成的过程对应着一个栈帧的入栈到出栈的过程。同样是线程私有; 3)本地方法栈 对应虚拟机使用的nativ...
分类:编程语言   时间:2014-04-27 22:12:22    阅读次数:440
1020条   上一页 1 ... 100 101 102
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!