A node in a Frequent Pattern tree. Args: name: The name of this node. num_occur: The number of occurrences of the node. parent_node: The parent node. Example: >>> parent = TreeNode("Parent", 1, None) >>> child = TreeNode("Child", 2, parent) >>> chil
| 17 | |
| 18 | @dataclass |
| 19 | class TreeNode: |
| 20 | """ |
| 21 | A node in a Frequent Pattern tree. |
| 22 | |
| 23 | Args: |
| 24 | name: The name of this node. |
| 25 | num_occur: The number of occurrences of the node. |
| 26 | parent_node: The parent node. |
| 27 | |
| 28 | Example: |
| 29 | >>> parent = TreeNode("Parent", 1, None) |
| 30 | >>> child = TreeNode("Child", 2, parent) |
| 31 | >>> child.name |
| 32 | 'Child' |
| 33 | >>> child.count |
| 34 | 2 |
| 35 | """ |
| 36 | |
| 37 | name: str |
| 38 | count: int |
| 39 | parent: TreeNode | None = None |
| 40 | children: dict[str, TreeNode] = field(default_factory=dict) |
| 41 | node_link: TreeNode | None = None |
| 42 | |
| 43 | def __repr__(self) -> str: |
| 44 | return f"TreeNode({self.name!r}, {self.count!r}, {self.parent!r})" |
| 45 | |
| 46 | def inc(self, num_occur: int) -> None: |
| 47 | self.count += num_occur |
| 48 | |
| 49 | def disp(self, ind: int = 1) -> None: |
| 50 | print(f"{' ' * ind} {self.name} {self.count}") |
| 51 | for child in self.children.values(): |
| 52 | child.disp(ind + 1) |
| 53 | |
| 54 | |
| 55 | def create_tree(data_set: list, min_sup: int = 1) -> tuple[TreeNode, dict]: |
no outgoing calls
no test coverage detected