java 二叉树迭代器_C,为二叉树实现自定义迭代器(长)

请你好 - 这是我的第一个问题 . = P

基本上作为夏季项目,我一直在浏览wikipedia page上的数据结构列表并尝试实现它们 . 我上学期参加了一门C课程并发现它非常有趣,作为我实施二项式堆的最后一个项目 - 这也非常有趣 . 也许我很讨厌,但我喜欢数据结构 .

无论如何,足够的背景故事 . 项目进展顺利,我从二叉树开始 . 为了更进一步,我需要创建迭代器来遍历树 . 我已经决定为每个遍历方法(常规迭代器和常量迭代器)创建两种类型的迭代器,我只是不知道如何做到这一点 . 我听说从stl的迭代器继承,甚至使用boosts iterator_facade(这似乎是个不错的选择)

我还没有尝试编写迭代器代码,因为我不知道从哪里开始,但我确实在github上有我当前的代码 . 你可以看一下here .

如果你反对github,我会粘贴相关的类定义 . 这些功能的实现实际上没有任何帮助,但如果您出于某种原因需要它们,请告诉我 . 此外,节点类具有用于迭代目的的父指针 .

#ifndef __TREES_HXX

#define __TREES_HXX

#include // For NULL

#include // for std::max

// Node class definition. These nodes are to be used for any

// tree where the structure is

// node

// /\

// left right

// /\ /\

//

// etc., basically two children.

template

class Node

{

public:

T data_;

Node* left_;

Node* right_;

Node* parent_; // Needed for iterators

explicit Node(T const&);

Node(Node const&);

};

template

class BinaryTree

{

protected:

typedef Node* node_t;

size_t tree_size;

public:

typedef T value_type;

explicit BinaryTree();

explicit BinaryTree(T const&);

~BinaryTree();

virtual node_t insert(node_t&, T) = 0;

virtual T& lookup(node_t const&, T const&) const = 0;

inline virtual size_t size() const;

inline virtual size_t depth(node_t const&) const;

inline bool empty() const;

inline void clear(node_t);

node_t root;

};

这是我们抽象类的基本二叉树扩展,基本上它(将是)一个BST . 有关我需要迭代器的原因的示例,请查看查找函数的定义 . 它应该将迭代器返回到找到东西的节点 .

/* Implementation of our Binary Tree is in

* this file. The node class is in Trees.hxx

* because it's intended to be a general class.

*/

#ifndef __BINARY_TREE_HXX

#define __BINARY_TREE_HXX

#include "Trees.hxx"

template

class BiTree : public BinaryTree

{

private:

typedef typename BinaryTree::node_t node_t;

public:

typedef typename BinaryTree::value_type value_type;

BiTree() : BinaryTree()

{

}

BiTree(T const& data) : BinaryTree(data)

{

}

node_t insert(node_t&, T);

T& lookup(node_t const&, T const&) const; // Note: This should return an iterator to the node where the stuff is found

};

我想就是这样 - 谢谢你的时间!如果您需要其他信息,请告诉我们 .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java防止编码重复_java – 如何避免许多小类的代码重复?

我有不同的课程,分别是英语,西班牙语,法语等:Class English{String name "English";String alias "ENG";}Class French{String name "French";String alias "Fre";}与其他语言类似.还有一个叫做语言的课:Cl…

HTML+CSS+JS实现 ❤️6种transform图片悬停动态效果❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

ldap协议 java_java如何调用ldap协议【LdapContext】

背景:做了个系统需要用集团的用户id登录。而集团用户系统是用ldap做的。关键知识点1. 设置连接ctx new InitialLdapContext(env, connCtls);2.设置url和查询的子路径env.put(Context.PROVIDER_URL, URL);// LDAP serverenv.put(Context.SECURITY_PRINCIPAL, SEARCH…

HTML+CSS+JS实现 ❤️经典霓虹灯英文字母特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...

合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc 1课程设计动态分区分配存储管理设计题目学号专业班级学生姓名号指导教师22010年12月合肥工业大学课程设计任务书设计题目动态分区分配存储管理成绩主要内容动态分区分配存储管理建立描述内存分配状况的数据结构&a…

HTML+CSS+JS实现 ❤️感谢关注3D文字动画特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

java中字符串后加Box_字符串未显示在JavaFX中ComboBox的Tableview上

我一直在尝试在Java中显示我从组合框到表视图的选择 . 我花了好几个小时都在寻找解决方案,但没有用 . 我没有任何错误,但我似乎无法在TableView上显示一个字符串 . 我想请求帮助 .MainView.java有组合框和单击按钮的位置,它应该将组合框中的字…

HTML+CSS+JS实现 ❤️基于Javascript简单计算器特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

java font 字体 隶书_在font标记对,将字体设置成“隶书”,设置属性( )=隶书。...

字体夏季影响我国大部分地区的大气活动中心是太平洋高压和阿留申低压。Q0.0和Q0.1只要有一个继电器线圈先接通,记对另一个就不能再接通,从而保证任何时候两者都不能同时起动,这种控制方式称为()。按照工作方式的不同,设置书设置属…

HTML+CSS+JS实现 ❤️高光立体游戏卡片悬停ui特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

java获取500错误_HTTP 500错误

IIS5的HTTP 500内部服务器错误是我们经常碰到的错误之一,它的主要错误表现就是ASP程序不能浏览但HTM静态网页不受影响。另外当错误发生时,系统事件日志和安全事件日志都会有相应的记录。具体如下……一.错误表现IIS5的HTTP 500内部服务器错误是我们经常碰…

HTML+CSS+JS实现 ❤️流星天体动画场景特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

java的uuid有什么用_java – 什么是有效的UUID?

我生成UUID,并在我的代码中对正则表达式进行有效;我刚遇到困扰我的问题以下是生成UUID的代码(在mongodb上下文中)import java.util.UUID;... ...Document setOnInsert new Document(Params.sender, UUID.randomUUID()).append(Params.userDevice, userDevice).append(Params.h…

HTML+CSS+JS实现 ❤️创意几何love字母特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

java客户端连接请求发不出去_java – Spring:客户端发送的请求在语法上不正确()...

嗨,我在重定向期间收到下一个错误:The request sent by the client was syntactically incorrect浏览器显示的URL是:localhost:8080 / Project / menu / main / home / 0,这里我的类重定向首先 – “从”,第…

HTML+CSS+JS实现 ❤️卡通湖面上日出动画特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

HTML+CSS+JS实现 ❤️爱心文字3D旋转动画特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

php连接oracle很慢是什么原因_通过DB LINK插入速度很慢的问题

DB2上做的10046的Trace,内容截图如下:*** 2011-01-13 11:11:24.805WAIT #3068448836: namSQL*Net more data from dblink ela 1035392 driver id675562835 #bytes33 p30 obj#-1 tim1294888284805778WAIT #3068448836: namSQL*Net more data from dblink …

HTML+CSS+JS实现 ❤️飞行人物图标动画特效❤️

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &…

python产生10个不同的随机数组成列表并求平均值_计算多个随机数的平均数Python...

我对Python相当陌生,在尝试计算一堆随机数的平均值时遇到了一个障碍数字。那个该程序的总体概述是,它是一个模具轧制程序,它提示用户输入一定数量的边,然后滚动,直到程序输出蛇眼。它还可以记录下双打的数量以及蛇眼花…