2016年6月27日

二叉搜索树的后序遍历序列

摘要: 题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路:需要遍历树,二叉排序树的特点是 lchild.key < root.key < rchild.key 那么我们使用分治思想,先利用上面特点将左右子树 阅读全文

posted @ 2016-06-27 17:18 三颗心 阅读(385) 评论(0) 推荐(0) 编辑

从上往下打印二叉树

摘要: 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。 思路:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。 阅读全文

posted @ 2016-06-27 15:57 三颗心 阅读(662) 评论(0) 推荐(0) 编辑

栈的压入、弹出序列

摘要: 题目:判断一数字序列是否为这些数字入栈的一种出栈方式(前提:栈中的数字不重复) 思路1:如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列还没有入栈的数字压入辅助栈,知道把下一个要弹出的数字压入栈顶为止。如果所有的数字都压入了仍然没有找到下一个弹出的数字, 阅读全文

posted @ 2016-06-27 13:58 三颗心 阅读(776) 评论(0) 推荐(0) 编辑

包含min函数的栈

摘要: 题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 分析:除了题目要求的栈之外新开一个栈,用来记录最小值,每当在原栈中push数据后,与最小值栈中的栈顶元素比较,如果新值较小,则在最小值栈中push新值;否则再次push 阅读全文

posted @ 2016-06-27 10:43 三颗心 阅读(353) 评论(0) 推荐(0) 编辑

导航