Skip to content

Additional functionality #6

@tshemsedinov

Description

@tshemsedinov

Для TreeNode можно сделать то же, что и с https://github.com/HowProgrammingWorks/LinkedList и тут даже можно больше придумать:

  • Поиск (с разной реализацией), например:
    • Найти первый и вернуть через return: findFirst(name):Node
    • Найти все и вернуть через return массив: findAll(name):[Node]
    • Искать и вызывать callback при нахождении: find(name, callback(Node))
    • По имени, но не глубже указанного find({ name, depth }, callback(Node))
    • Посложнее: find({ name, parent, depth, hasChildren }, callback(Node))
    • По регулярному выражению: find(nameRegExp, callback(Node))
  • Добавление элементов: shift, pop, erase
  • Удаление элементов: unshift, push, insert
  • Вставка массива элементов: append([node1, node2, node3])
  • Заменить предка: setParent(node, newParent)

и таких можно придумать много, вы поняли принцип

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions