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

原创 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;
		}
	}
}


[leetcode 173] Binary Search Tree Iterator-------为二叉搜索树实现迭代器功能

Question: Implement an iterator over a binary search tree (BST). Your iterator will be initiali...

C++数据结构——二叉搜索树(实现自定义迭代器)

1.二叉搜索树抽象模型和相应的node对象表示   2.从二叉搜索树删除一个节点    (1)如果是叶子节点就直接删除    (2)被删除的节点有左节点,但没有右节点,则将左...

C++数据结构——二叉搜索树迭代器的实现

1.二叉搜索树迭代器的中序遍历遍历   2.迭代器的++指向中序遍历的下一个节点   *如果右子树不空,则移动到右子树,并沿着左边向下,直到当前节点的左指针为空,例如12的下一节点14 ...

二叉搜索树---使用迭代器

迭代器:它的用法与指针用法相同 使用迭代器实现二叉搜索树,使用有两个指针域的头结点实现, 并且多给BSTree中加入一个双亲结点_pParent。代码: BSTIterator....

二叉搜索树的迭代器

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

VC/C++实现二叉搜索树查找算法

  • 2010年12月21日 16:33
  • 468KB
  • 下载

【算法】二叉树的非递归遍历的简洁写法/迭代器实现/O(1)空间复杂度的Morris遍历

事情的起因是这样的,一大早突然想到C++的STL里set是由红黑树实现的,那set遍历的时候iterator是怎么实现的呢,自己想了个不算太好的算法,于是就想着去网上找找,看到一个人说就是把二叉树的非...

【LeetCode-面试算法经典-Java实现】【098-Validate Binary Search Tree(验证二叉搜索树)】

【098-Validate Binary Search Tree(验证二叉搜索树)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a binary tree,...

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

一年一度的应届生招聘季又开始了,自己悲催的也加入到了应聘大军中。无奈非计算机本专业的LZ要进入IT行业可谓难上加难,现正在恶补各类算法笔试面试题中,今天整理记录“关于二叉搜索树非递归遍历”的学习过程于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现二叉搜索树迭代器(算法)
举报原因:
原因补充:

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