在 Dartlang 的链表上实现 Iterable 类?

Posted

技术标签:

【中文标题】在 Dartlang 的链表上实现 Iterable 类?【英文标题】:Implementing Iterable class on a Linked List in Dartlang? 【发布时间】:2019-06-23 04:59:00 【问题描述】:

我知道 dart:collection 库有一个很棒的链表实现。然而,我正在尝试自己实现一个链接列表作为 MOOC 的一部分。

这是我非常简单的链表实现

import './node.dart';

class LinkedList 
  // root node of the list
  Node root = null;
  // the number of items on the list
  int _count = 0;

  // returns true if root is not set
  bool isEmpty()
    return this.root == null;
  

  // getter for the _count variable;
  get count
    return this._count;
  

  // push method to push a new item to the end of the list
  push(String content) 
    Node item = new Node(content);
    if (this.root == null) 
      this._count += 1;
      this.root = item;
     else 
      Node iterator = root;
      while (iterator.next != null) 
        iterator = iterator.next;
      
      this._count += 1;
      iterator.next = item;
    
    return item;
  

我想让它实现 Iterable Class 属性和方法,例如 foreach 和 length 。我阅读了 Iterable 和 IterableMixin 类的文档,但我仍在努力理解如何将它们与我的 LinkedList 类一起使用,因为这些文档仅提供了将 Map 用作 Iterable 的示例。

【问题讨论】:

【参考方案1】:

扩展IterableBase docs,你应该很高兴!

【讨论】:

以上是关于在 Dartlang 的链表上实现 Iterable 类?的主要内容,如果未能解决你的问题,请参考以下文章

如何从java中的链表中删除一个对象?

尝试在 https://pub.dartlang.org 查找包 ABC 时出现 TLS 错误

将第一个节点添加到hashmap中的链表时,为啥必须将新节点直接分配给索引指针?

Flutter 创建导致错误 尝试在 https://pub.dartlang.org 找到包 cupertino_icons 时出现 TLS 错误

试写一算法在带头结点的单链表结构上实现线性表操作Length(L)。下面各个步骤的解释要详细

泛型集合类中的链表类随机产生100个有序整数(单词)的链表