示例#1
0
    def button_clicked(self):#кнопка подбора фильмов по жанру и году
        self.ui.listFilms.clear()
        T = BinarySearchTree()#создание объекта бинарного дерева поиска
        first = 0
        second = 0
        if not self.ui.firstYear.text().isdigit():#проверка на корректный ввод года
            first = 1920
        else: first = int(self.ui.firstYear.text())
        if not self.ui.secondYear.text().isdigit():#проверка на корректный ввод года
            second = 2019
        else: second = int(self.ui.secondYear.text())
        l =[[ "аниме",[]],["фэнтези",[]],["мелодрама",[]],["биография",[]],["боевик",[]],
            ["вестерн",[]],["военный",[]],["детектив",[]],["документальный",[]],["драма",[]],
            ["мультфильм",[]],["приключения",[]],["семейный",[]], ["триллер",[]], ["ужасы",[]],
            ["фантастика",[]]]#список жанров
        file = open('C:\\Users\\alexa\\Documents\\Films.txt', 'r',encoding = 'UTF-8')
        for line in file:#добавление фильмов в список жанров
            A = line.split(', ')
            for j in range(len(l)):
                if A[2]==l[j][0]:
                    l[j][1].append(A)

        diclist = []
        for k in range(first,second+1):
            diclist.append(k)
        dic =dict.fromkeys(diclist[:])#создание словаря годов
        for k in range(first,second+1):#добавление информации в словарь
            d = []
            for j in range(len(l)):
                if(l[j][1]!=[]):
                    for q in range((len(l[j][1]))):
                        if int(l[j][1][q][1])==k:
                            d.append((l[j][1][q]))
            dic.update({int(k):d})
        for el in dic.items():#добавление элементов словаря в бинарное дерево
            T[el[0]] = el
        for que in range(first,second+1):#поиск в бинарном дереве нужного года и жанра
            if T[que][1] is not None :
                for t in range(len(T[que][1])):
                    if str(T[que][1][t][2])==self.ui.Type3.currentText():
                        self.ui.listFilms.addItem("Название: " + str(T[que][1][t][0])+", Жанр: "
                                                  +str(T[que][1][t][2])+", Год выпуска: "
                                                  +str(T[que][1][t][1])+", Режиссёр: "
                                                  +str(T[que][1][t][3]))
                    elif str(self.ui.Type3.currentText()) == "любой":
                        self.ui.listFilms.addItem("Название: " + str(T[que][1][t][0])+", Жанр: "
                                                  +str(T[que][1][t][2])+", Год выпуска: "
                                                  +str(T[que][1][t][1])+", Режиссёр: "+str(T[que][1][t][3]))
def preOrderTraversal(root):
    if root is None:
        return None

    result = []
    stack = [root]

    while stack:
        currNode = stack.pop()
        result.append(currNode.value)

        if currNode.right:
            stack.append(currNode.right)

        if currNode.left:
            stack.append(currNode.left)

    return result


BST = BinarySearchTree(6)
BST.insert(4)
BST.insert(9)
BST.insert(5)
BST.insert(2)
BST.insert(8)
BST.insert(12)

result = preOrderTraversal(BST.root)

print(result)
 def __init__(self, distributorName):
     self.distributorName = distributorName
     self.includes = BinarySearchTree()
     self.excludes = [BinarySearchTree()]
示例#4
0
from Tree import BinarySearchTree

my_tree = BinarySearchTree()

my_tree.insert(100)
my_tree.insert(200)
my_tree.insert(50)
my_tree.insert(75)
my_tree.insert(150)

my_tree.inorder(my_tree.root)