[我在执行代码时收到以下错误-EOFError:读取一行时出现EOF

问题描述 投票:-1回答:1

我编写了以下代码,从给定的输入创建二叉搜索树,并找到树的最小值。

输入:

输入的第一行包含测试用例的数量T。对于每个测试用例,只有一行输入是表示树的字符串,如下所述:

示例:

2
5 4 6 3 N N 7 1
9 N 10 N 11

字符串中的值按树的级别顺序遍历的顺序,其中,数字表示节点值,而字符“ N”表示NULL子代。

这里是问题的链接:Minimum element in BST

class node:
    def __init__(self,value):
        self.val=value
        self.left=None
        self.right=None

    class BST:
        def __init__(self,value):
            self.root=node(value)

        def insert(self,value):
            if self.root==None:
                self.root=node(value)
            else:
                self._insert(value,self.root)

        def _insert(self,value,curr):
            if value<curr.val:
                if curr.left==None:
                    curr.left=node(value)
                else:
                    self._insert(value,curr.left)
            elif value>curr.val:
                if curr.right==None:
                    curr.right=node(value)
                else:
                    self._insert(value,curr.right)

        def print_tree(self):
            if self.root!=None:
                self._print_tree(self.root)

        def _print_tree(self,cur_node):
            if cur_node!=None:
                self._print_tree(cur_node.left)
                print (str(cur_node.val))
                self._print_tree(cur_node.right)

        def min_val(self):
            if self.root==None:
                return -1
            else:
                self._min_val(self.root)

        def _min_val(self,curr_node):
            if curr_node.left==None:
                print(curr_node.val)
            else:
                self._min_val(curr_node.left)
        ##Your code here

    t=int(input())        #number of test cases
    for j in range(t):
        a=input()
        lst=a.split(" ")
        root=int(lst[0])
        tree=BST(root)
        for i in range(1,len(lst)):
            if lst[i]!=N:
                tree.insert(int(lst[i]))

        tree.min_val()

我要去哪里错了?每当我运行代码时,都会显示EOF错误。但是相同的代码在带有自​​定义输入的IDE中也可以很好地工作。

python binary-search-tree
1个回答
1
投票

首先,您会在其中遇到一些语法错误:

if lst[i]!=N:

->

if lst[i] != 'N':
class node:
def __init__(self,value):

->

class node:
    def __init__(self,value):

您还可以分享所得到的错误吗?

编辑:看问题:

任务是完成函数minValue(),该函数将root作为参数并返回BST的最小元素。

您只应提供minValue(root),不得提供其他任何内容。测试引擎将为您处理读取输入的内容。

© www.soinside.com 2019 - 2024. All rights reserved.