profile
Размещено 4 года назад по предмету Информатика от izhtnv

НУЖНА ПОМОЩЬ!!! Измените код программы представленный ниже, так чтобы программа вывела количество узлов, рёбер и листьев в дереве(python)

class TNode:
pass
def newNode(d):
node = TNode()
node.data = d
node.left = None
node.right = None
return node
def priority(op):
if op in "+-": return 1
if op in "*/": return 2
return 100
def lastOp(s):
minPrt = 50
k = -1
for i in range(len(s)):
if priority(s[i]) <= minPrt:
minPrt = priority(s[i])
print(s[i])
k = i
return k
def makeTree(s):
k = lastOp(s)
print(s, k)
print("--------")
if k < 0:
Tree = newNode(s)
else:
Tree = newNode(s[k])
Tree.left = makeTree(s[:k])
Tree.right = makeTree (s[k+1:])
return Tree
def calcTree(Tree):
if Tree.left == None:
return int(Tree.data)
else:
n1 = calcTree(Tree.left)
n2 = calcTree(Tree.right)
if Tree.data == "+": res = n1 + n2
elif Tree.data == "-": res = n1 - n2
elif Tree.data == "*": res = n1 * n2
else: res = n1 // n2
return res

s = input("Введите выражение: ")
T = makeTree(s)
print("Результат: ", calcTree(T))

  1. Ответ на вопрос
    Ответ на вопрос дан Gabelas

    Ответ:

    class Node:

       def __init__(self, val):

           self.l = None

           self.r = None

           self.v = val

    class Tree:

       def __init__(self):

           self.root = None

       def getRoot(self):

           return self.root

       def add(self, val):

           if self.root is None:

               self.root = Node(val)

           else:

               self._add(val, self.root)

       def _add(self, val, node):

           if val < node.v:

               if node.l is not None:

                   self._add(val, node.l)

               else:

                   node.l = Node(val)

           else:

               if node.r is not None:

                   self._add(val, node.r)

               else:

                   node.r = Node(val)

       def find(self, val):

           if self.root is not None:

               return self._find(val, self.root)

           else:

               return None

       def _find(self, val, node):

           if val == node.v:

               return node

           elif (val < node.v and node.l is not None):

               return self._find(val, node.l)

           elif (val > node.v and node.r is not None):

               return self._find(val, node.r)

       def deleteTree(self):

           # garbage collector will do this for us.  

           self.root = None

       def printTree(self):

           if self.root is not None:

               self._printTree(self.root)

       def _printTree(self, node):

           if node is not None:

               self._printTree(node.l)

               print(str(node.v) + ' ')

               self._printTree(node.r)

    #     3

    # 0     4

    #   2      8

    tree = Tree()

    tree.add(3)

    tree.add(4)

    tree.add(0)

    tree.add(8)

    tree.add(2)

    tree.printTree()

    print(tree.find(3).v)

    print(tree.find(10))

    tree.deleteTree()

    tree.printTree()

    Объяснение:

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.