实现二叉搜索树迭代器(算法)

原创 2015年07月07日 21:02:54

实现一个二叉搜索树迭代器,至少实现hasNext() 和next()函数。

class BSTIterator implements Iterator< Integer> 
{
	private Stack<TreeNode> stack = new Stack<TreeNode>();
	BSTIterator(TreeNode root)
	{
		pushLeft(root);
	}
	public boolean hasNext()
	{
		return !stack.isEmpty();
	}
	public int next()
	{
		TreeNode x = stack.pop();
		pushLeft(x.right);	
		return x.val;
	}
	private void pushLeft(TreeNode x)
	{
		while(x != null)
		{
			stack.push(x);
			x = x.left;
		}
	}
}


二叉搜索树的迭代器

我们经常使用着我们并不熟悉的函数/类,我们只知道它们所提供的接口以及怎样使用。这就像我们开车在马路上,你可能并不知道汽车是如何运行,或许你会说这并不需要知道。但至少知道一些回在车抛锚的时候你能做一些事...
  • fengasdfgh
  • fengasdfgh
  • 2016年11月15日 23:12
  • 497

Leetcode 173 Binary Search Tree Iterator 二叉查找树迭代器

实现一个适用于二叉查找树的迭代器,该迭代器通过二叉查找树的根结点来实例化。调用next()返回二叉查找树中的最小的元素。next()和hasNext()运行的平均时间复杂度为O(1),空间复杂度为O(...
  • smile_watermelon
  • smile_watermelon
  • 2015年08月04日 18:27
  • 1366

算法之 有序链表和平衡二叉树 有序数组与平衡二叉树

题目描述: Given a singly linked list where elements are sorted in ascending order, convert it to a heigh...
  • C12345SDN
  • C12345SDN
  • 2014年08月23日 21:57
  • 1200

算法导论程序39--最优二叉搜索树(Python)

最优二叉搜索树: 给定一个n个不同关键字的已排序的序列K=(因此k1 有些要搜索的值可能不在K中,因此,我们还有n+1个“伪关键字”d0,d1,d2,...,dn表示不在K中的值。d0表示所有小于k1...
  • zhang_xiaomeng
  • zhang_xiaomeng
  • 2017年05月31日 15:02
  • 181

搜索二叉树含迭代器

搜索二叉树含迭代器#include #include using namespace std; template struct BSTNode { BSTNode(const K& key=0...
  • gjggj
  • gjggj
  • 2017年06月08日 21:30
  • 678

迭代器和算法

1、关乎效率时在map-operator[]和map-insert中慎重选择 map-operator[],检查k是否在map中,如果不在,则添加上,如果在,则更新‘ 它会返回一个k值关联对象的引用。...
  • hjing1988
  • hjing1988
  • 2015年03月16日 21:23
  • 342

算法java实现--动态规划--最优二叉树搜索

最优erchasoushuo算法的java实现(动态规划法) 具体问题描述以及C/C++实现参见网址 http://blog.csdn.net/liufeng_king/article/d...
  • qipanliming
  • qipanliming
  • 2014年04月28日 16:15
  • 2356

算法学习笔记一:二叉搜索树的非递归遍历实现

一年一度的应届生招聘季又开始了,自己悲催的也加入到了应聘大军中。无奈非计算机本专业的LZ要进入IT行业可谓难上加难,现正在恶补各类算法笔试面试题中,今天整理记录“关于二叉搜索树非递归遍历”的学习过程于...
  • zssureqh
  • zssureqh
  • 2013年09月15日 15:32
  • 2324

c++ STL常见算法和迭代器

STL标准化了容器的使用方法,所以可以使用通用的算法和迭代器来操作容器,这里总结下常用的容器算法和迭代器用法。...
  • wenzhou1219
  • wenzhou1219
  • 2016年05月29日 20:21
  • 1008

STL(标准模板库)理论基础,容器,迭代器,算法

基本概念         STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很...
  • zyq522376829
  • zyq522376829
  • 2015年07月07日 15:21
  • 1011
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现二叉搜索树迭代器(算法)
举报原因:
原因补充:

(最多只允许输入30个字)