美文网首页
C++11迭代器模式展示

C++11迭代器模式展示

作者: FredricZhu | 来源:发表于2021-07-13 11:47 被阅读0次

题目,


image.png

这个代码跟迭代器没什么关系,就是先序遍历树,然后把遍历结果放到std::vector里面。
不过有了这个std::vector,就可以对std::vector进行迭代了。

实现思路也很简单,直接递归

程序代码如下,

#include <iostream>
#include <vector>
using namespace std;

template <typename T>
struct Node
{
    T value;
    Node *left{nullptr}, *right{nullptr}, *parent{nullptr};

    Node(T value) : value(value) {}

    Node(T value, Node<T> *left, Node<T> *right) : value(value), left(left), right(right) {
      left->parent = right->parent = this;
    }

    // traverse the node and its children preorder
    // and put all the results into `result`
    void preorder_traversal(vector<Node<T>*>& result)
    {
        preorder_traversal_inner(result, this);
    }
    
    void preorder_traversal_inner(vector<Node<T>*>& result, Node<T>* node) {
        if(!node) {
            return;
        }
        result.push_back(node);
        if(node->left) {
            preorder_traversal_inner(result, node->left);
        }
        
        if(node->right) {
            preorder_traversal_inner(result, node->right);
        }
    }
};

相关文章

  • C++11迭代器模式展示

    题目, 这个代码跟迭代器没什么关系,就是先序遍历树,然后把遍历结果放到std::vector里面。不过有了这个st...

  • 设计模式(17) 迭代器模式

    迭代器模式 基于IEnumerable的实现 使用场景 迭代器模式的优缺点 迭代器模式 迭代器模式用于顺序访问集合...

  • 第5章 -行为型模式-迭代器模式

    一、迭代器模式的简介 二、迭代器模式的优缺点 三、迭代器模式的实例

  • 行为型模式:迭代器模式

    LieBrother原文:行为型模式:迭代器模式 十一大行为型模式之六:迭代器模式。 简介 姓名 :迭代器模式 英...

  • Iterator模式

    迭代器模式(Iterator模式) 定义: 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 ...

  • C++11解释器模式展示

    题目, 本例实现一个简单的+,-法解释器,不考虑括号的情况,也就是不考虑优先级。需要支持嵌入变量的情况。如果变量是...

  • C++11 装饰器模式展示

    题目, 这个题目开始想复杂了,折腾了两三个小时才折腾出来,不过这种设计本身也很蛋疼,1、已经有red或者blue的...

  • 迭代器模式

    一、迭代器模式介绍 二、迭代器模式代码实例

  • 设计模式 | 迭代器模式及典型应用

    本文的主要内容: 介绍迭代器模式 源码分析迭代器模式的典型应用Java集合中的迭代器模式Mybatis中的迭代器模...

  • 设计模式系列——迭代器模式

    迭代器模式介绍 迭代器模式是行为模式之一,又称为(Cursor)模式。迭代器模式源于对容器的访问,如List,Ma...

网友评论

      本文标题:C++11迭代器模式展示

      本文链接:https://www.haomeiwen.com/subject/xlojpltx.html