diff --git a/u8/program.py b/u8/program.py index 2665718..d53c945 100644 --- a/u8/program.py +++ b/u8/program.py @@ -2,74 +2,83 @@ import sys class Node: - def __init__(self, text, left = None, right = None): + def __init__(self, text, left=None, right=None): self.text = text self.left = left self.right = right + def main(): print("Expert zo zoo to vie.") + input_data = sys.stdin.read() + if not input_data: + print("Chybna databaza") + return + lines = input_data.splitlines() if not lines: print("Chybna databaza") return - q_counter = 0 a_counter = 0 idx = 0 def parse_tree(): nonlocal idx, q_counter, a_counter - if idx >= len(lines): - return None - line = lines[idx] - idx = idx + 1 - - - if line == "": - return None - - - if line.endswith('?'): - q_counter = q_counter + 1 - left = parse_tree() - if left is None: + if idx >= len(lines): return None - right = parse_tree() - if right is None: + + line = lines[idx] + idx += 1 + + if line == "": return None - return Node(line, left, right) - else: - a_counter = a_counter + 1 - return Node(line) - + + if line.endswith('?'): + q_counter += 1 + left = parse_tree() + if left is None: + return None + right = parse_tree() + if right is None: + return None + return Node(line, left, right) + else: + a_counter += 1 + return Node(line) + root = parse_tree() + if root is None or idx >= len(lines) or lines[idx] != "": print("Chybna databaza") return - print(f"Pocet otazok: {q_counter}") print(f"Pocet odpovedi: {a_counter}") print("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.") + idx += 1 - current = root while True: print(current.text) + + if not current.text.endswith('?'): print("Koniec") break + + #koniec vstup if idx >= len(lines): print("Koniec vstupu") break + choice = lines[idx] - idx = idx + 1 + idx += 1 if choice == 'a': current = current.left @@ -79,5 +88,6 @@ def main(): print("Nerozumiem") break + if __name__ == '__main__': main() \ No newline at end of file