package Stack;
/**
* 栈的定义:限定只在表位进行增加和删除操作的线性表
* 栈的特点:先进后出FILO(First In Last Out)
* 通常我们把允许插入和删除的一段称为栈顶(top),另一端
* 称为栈底,不包含任何元素的栈称为空栈
* 栈的出栈操作我们一般称为进栈或者压栈或者入栈
* 栈的删除操作我们一般称为出栈或者弹栈
*...
分类:
编程语言 时间:
2014-11-19 18:51:17
阅读次数:
219
算法分析:
本题是拓扑排序的典型应用。
由于顶点数量不多,可以采用邻接矩阵来存储图信息,这样算法比较简单,只需要搜索n次,每次把序号最小的入度为0的顶点存储到拓扑序列中就行了。算法思路比较清晰,代码也比较简洁,但时间复杂度和空间复杂度都较高。
另一种方法是采用邻接表存储图信息。由于题目要求输出时编号小的队伍在前,所以在入栈时一定要保证先让序号最小的入度为0的顶点在栈顶,这样根据后进先出的特点,可以把序号最小的顶点存储到拓扑序列中。我采用折半插入排序的方法,把入度为0的顶点按递减序排序,然后对图进行深度优先...
分类:
其他好文 时间:
2014-11-19 16:05:59
阅读次数:
174
题意:
给定n,
下面是1-n的排列。
下面一个二进制子串。
先按给定的排列建出二叉树。
然后遍历树(根->左子树->根->右子树->根)
遍历这个节点时 若权值为奇数入栈一个1,若为偶数入栈一个0
得到一个母串。
问母串中出现了几次子串。
思路:
先是建树得到母串,然后求子串个数就是裸的KMP。
建树就是找个规律,然后用线段树维护一下输入的排列
#include
#...
分类:
其他好文 时间:
2014-11-09 15:18:00
阅读次数:
258
转自http://blog.csdn.net/dongtingzhizi/article/details/6680050C++函数调用过程深入分析作者:靠谱哥微博:洞庭之子-Bing0. 引言 函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一个函数的调用的呢?参数入栈、函数跳....
分类:
编程语言 时间:
2014-11-08 19:33:44
阅读次数:
213
这道题最先开始时用栈和map来做的,首先将两个链表压入栈中,然后从栈顶开始比较两个元素,发现最后一个数据超时了。然后用一种比较巧的方法,计算每个节点的反向链接节点数目,只要是交点,反向链接节点数目就会是2,由此计算出交集点。发现最后一个测试用例还是超时,于是网上搜罗了一下,发现网上有人用第一种方法就...
分类:
其他好文 时间:
2014-11-08 15:05:54
阅读次数:
103
边学边写代码,记录下来。这段代码用于批量抓取主站下所有子网页中符合特定尺寸要求的的图片文件,支持中断。原理很简单:使用BeautifulSoup4分析网页,获取网页和元素,对集合反复弹栈入栈,对集合进行筛选下载。具体代码如下:import osimport sysimport timeimport ...
分类:
编程语言 时间:
2014-11-07 16:42:18
阅读次数:
278
因为偶然的机会,工作中同事workshop中讲到了从编译角度理解TI芯片dsp函数的调度过程,主要是函数调度过程中寄存器的使用,这里总结下函数调度过程common的过程。
调用者开始调用函数,1.调用者将函数参数自右向左依次压栈;2.调用者将返回地址压入栈中;3.将寄存器ebp压栈(记录当前调用者栈底指针);4.将esp赋值给ebp(将当前调用者栈顶指针当作该函数的栈底指针);5....
分类:
其他好文 时间:
2014-11-01 23:14:40
阅读次数:
271
思路:参考严蔚敏的数据结构书籍
两个栈:操作数栈OPND,操作符号栈OPTR
在表达式后加=
符号栈初始化时=入栈
每读一个字符:
当它是#并且符号栈栈顶也是#时结束算法
当它是操作数时,进数栈
当它是符号时:
1.如果符号栈顶的优先级小于它,进符号栈
2.如果符号栈顶的优先级大于它,出两个数,出一个符号,计算后入数栈
3.如果与符号...
分类:
其他好文 时间:
2014-10-31 22:18:44
阅读次数:
221
问题描述:什么是回文?如,aha, adda,单ahah就不是回文,等等如何判断一串字符串是回文呢?这里的想法是:我们利用队列的方式,找到字符的中间的位置,将中间字符之前的全部入栈,然后全部出栈,与中间字符之后的字符进行比较,如果全部一样,那么就是回文。代码:#include#include #in...
分类:
编程语言 时间:
2014-10-30 20:53:25
阅读次数:
199
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。
无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:...
分类:
编程语言 时间:
2014-10-29 17:16:11
阅读次数:
294