这三种常见的扁历方式,是考研面试等场合经常遇到的,在此做一个总结。
1、前序遍历比较简单:用指针p指向根节点,若p!=NULL且栈非空,则直接访问节点,并将节点的右孩子入栈,同时指针p向左孩子移动。
2、中序扁历:用指针p指向根节点,若p!=NULL且栈非空,则当前节点入栈,同时指针p向左孩子移动,出栈是指针指向当前节点的右孩子。
3、后序扁历相对复杂:需要设置一个辅助栈,标识该节点是否是第...
分类:
编程语言 时间:
2014-09-09 18:26:19
阅读次数:
211
1 /* 2 * 设计一个栈,除了pop与push方法,还支持Min方法,可返回栈元素中的最小值, 3 * push、pop、min三个方法的时间复杂度必须是O(1) 4 * 一种解法是在Stack类里添加一个Int型的minValue,当minValue出栈...
分类:
其他好文 时间:
2014-09-06 12:14:13
阅读次数:
232
题目大意:
一串数列,每一个值如果大于相邻右一位的值的话,那么就可以把右边这个值“吃掉”(右一位消失,原来的值不变),问需要吃多少次才能到达无法再吃的状态。
做法:
利用栈。遍历一遍数组,处理每个值的时候,如果栈顶的元素小于该值,那么将其弹出,知道栈顶元素大于该值或者栈为空,栈内的每个元素记录下一个属性:他是在第几次被“吃掉”,进栈的新元素的被吃次数就是它弹出去的元素中的属性的最大值...
分类:
其他好文 时间:
2014-08-31 15:53:01
阅读次数:
372
问题的由来:编号为1到n的n个元素,顺序的进入一个栈,则可能的出栈序列有多少种?对问题的转化与思考:n个元素进栈和出栈,总共要经历n次进栈和n次出栈。这就相当于对这2n步操作进行排列。问题等价于:n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有...
分类:
其他好文 时间:
2014-08-29 19:50:48
阅读次数:
271
项目做了一个切换界面动画的功能,用到了出栈入栈的,写了一个demopackage com.myron.stackview;import java.util.Stack;import android.app.Activity;import android.os.Bundle;import androi...
分类:
其他好文 时间:
2014-08-27 12:36:37
阅读次数:
805
使用两个栈实现一个队列
队列是先进先出的数据结构(FIFO),栈是先进后出的数据结构(FILO),
用两个栈来实现队列的最简单方式是:进入队列则往第一个栈压栈,
出队列则将第一个栈的数据依次压入第二个栈,然后出栈.
两条规则:
1)进队列,则直接压入第一个栈
2)出队列,若果第二个栈不为空,直接pop(),如过第二个栈为空,
则把第一个栈中的数据全部压入第二个栈(第一个栈此时为空...
分类:
其他好文 时间:
2014-08-27 01:40:37
阅读次数:
230
题目大意:
有一串只含有 "(" ")" "[" "]" 的序列,问在该序列的 左右括号能分别配对的 所有子串中的含有方括号的个数的最大值,并输出相对应的子串。
做法:
利用一个栈来维护,每次如果有能与栈顶的元素配对的右边括号时,将该元素弹出,如果此时弹出的元素代表方括号,那么记录此时出现的下标。否则将该元素压进栈。
当然我们压进栈的是当前元素的下标。当处理完整个序列之后...
分类:
其他好文 时间:
2014-08-26 17:30:46
阅读次数:
151
第一部分概述:Activity一共有以下四种launchMode:standard不管有没有实例,都会生成一个新的。2.singleTop如果实例位于栈顶部,则不再创建实例,否则创建一个新的实例。3.singleTask如果发现有对应Activity实例,则该Activity实例之上所有Activity出栈,使此Activity对象位于..
分类:
移动开发 时间:
2014-08-26 11:54:16
阅读次数:
278
第一部分概述:Activity一共有以下四种launchMode:standard不管有没有实例,都会生成一个新的。2.singleTop如果实例位于栈顶部,则不再创建实例,否则创建一个新的实例。3.singleTask如果发现有对应Activity实例,则该Activity实例之上所有Activity出栈,使此Activity对象位于..
分类:
移动开发 时间:
2014-08-26 11:54:07
阅读次数:
202
队列
什么是队列?
一种可以实现“先进先出”的存储结构。
出队 入队 -->>队列
出栈 压栈 -->>栈
链式队列 ---用链表实现的
静态队列 ---用数组实现的
静态队列通常必须是循环队列..
039.循环队列需要几个参数来确定极其含义的讲解
front代表的是队列的第一个元素
rear代表的是队列的最后一个有效元素的下一个元素
队...
分类:
其他好文 时间:
2014-08-24 16:45:52
阅读次数:
212