class_docstr: Реализация префиксного бора (точнее, корневого направленного ациклического графа)
  
  Атрибуты
  --------
  alphabet: list, алфавит
  alphabet_codes: dict, словарь символ:код
  compressed: bool, индикатор сжатия
  cashed: bool, индикатор кэширования запросов к функции descend
  root: int, индекс корня
  graph: array, type=int, shape=(число вершин, размер алфавита), матрица потомков
  graph[i][j] = k <-> вершина k --- потомок вершины i по ребру, помеченному символом alphabet[j]
  data: array, type=object, shape=(число вершин), массив с данными, хранящямися в вершинах
  final: array, type=bool, shape=(число вершин), массив индикаторов
  final[i] = True <-> i --- финальная вершина
class_docstr_tok: ["\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f","\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u043e\u0433\u043e","\u0431\u043e\u0440\u0430","(","\u0442\u043e\u0447\u043d\u0435\u0435",",","\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0433\u043e","\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e","\u0430\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e","\u0433\u0440\u0430\u0444\u0430",")","\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b","--","--","--","--","alphabet",":","list",",","\u0430\u043b\u0444\u0430\u0432\u0438\u0442","alphabet_codes",":","dict",",","\u0441\u043b\u043e\u0432\u0430\u0440\u044c","\u0441\u0438\u043c\u0432\u043e\u043b",":","\u043a\u043e\u0434","compressed",":","bool",",","\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440","\u0441\u0436\u0430\u0442\u0438\u044f","cashed",":","bool",",","\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440","\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","\u043a","\u0444\u0443\u043d\u043a\u0446\u0438\u0438","descend","root",":","int",",","\u0438\u043d\u0434\u0435\u043a\u0441","\u043a\u043e\u0440\u043d\u044f","graph",":","array",",","type=int",",","shape=","(","\u0447\u0438\u0441\u043b\u043e","\u0432\u0435\u0440\u0448\u0438\u043d",",","\u0440\u0430\u0437\u043c\u0435\u0440","\u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0430",")",",","\u043c\u0430\u0442\u0440\u0438\u0446\u0430","\u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432","graph","[","i","]","[","j","]","=","k","<","-",">","\u0432\u0435\u0440\u0448\u0438\u043d\u0430","k","--","-","\u043f\u043e\u0442\u043e\u043c\u043e\u043a","\u0432\u0435\u0440\u0448\u0438\u043d\u044b","i","\u043f\u043e","\u0440\u0435\u0431\u0440\u0443",",","\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u043c\u0443","\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c","alphabet","[","j","]","data",":","array",",","type=object",",","shape=","(","\u0447\u0438\u0441\u043b\u043e","\u0432\u0435\u0440\u0448\u0438\u043d",")",",","\u043c\u0430\u0441\u0441\u0438\u0432","\u0441","\u0434\u0430\u043d\u043d\u044b\u043c\u0438",",","\u0445\u0440\u0430\u043d\u044f\u0449\u044f\u043c\u0438\u0441\u044f","\u0432","\u0432\u0435\u0440\u0448\u0438\u043d\u0430\u0445","final",":","array",",","type=bool",",","shape=","(","\u0447\u0438\u0441\u043b\u043e","\u0432\u0435\u0440\u0448\u0438\u043d",")",",","\u043c\u0430\u0441\u0441\u0438\u0432","\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432","final","[","i","]","=","True","<","-",">","i","--","-","\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f","\u0432\u0435\u0440\u0448\u0438\u043d\u0430"]
code: def fit(self, words):
      for s in words:
          self.add(s)
      self.terminate()
  
imports: import copy
  from collections import defaultdict
  import numpy
label_desc: Use image node_id 8 for calling the Trie obj's underlying member method code with example usage: obj.fit(words) without return types