我们如何在Django中显示和存储二进制搜索树

我已经为Binary Search Tree编写了程序,但不知道如何将其保存在Django数据库中。如何将其存储在模型中:

 def insert(self,val):
    if (self.root == None):
        self.root = Node(val)
    else:
        current = self.root

        while 1:
            if (current.data > val):
                if (current.left == None):
                    current.left = Node(val)
                    break
                else:
                    current = current.left

            elif (current.data < val):
                if (current.right == None):
                    current.right = Node(val)
                    break
                else:
                    current = current.right

            else:
                break

在二叉搜索树中插入值时,我们首先检查该值是否大于,小于或等于树的根。我们将当前节点初始化为根。如果该值大于当前节点的值,那么我们知道它的正确位置将在正确的子树中。因此,我们将当前元素作为正确的节点。 如果该值小于当前节点的值,那么我们知道它的右位置将在左子树中。因此,我们将当前元素作为左节点。 如果该值等于当前节点值,那么我们知道该值已包含在树中,不需要重新插入。所以我们摆脱了循环。

def preorder(self,node):
    if (node == None):
        return
    else:
        print(node.data,end=" ")
        self.preorder(node.left)
        self.preorder(node.right)

在预遍历中,我们首先打印当前元素,然后继续到左侧子树,最后至右侧子树。

#Important : Inorder traversal returns the elements in sorted form.
def inorder(self,node):
    if (node == None):
        return
    else:
        self.inorder(node.left)
        print(node.data,end=" ")
        self.inorder(node.right)

在顺序遍历中,我们首先移至左侧子树,然后打印当前元素,最后移至右侧子树。

def postorder(self,node):
    if (node == None):
        return
    else:
        self.postorder(node.left)
        self.postorder(node.right)
        print(node.data,end=" ")

tree = BinarySearchTree()
tree.insert(1)
tree.insert(9)
tree.insert(4)
tree.insert(3)
tree.insert(5)
tree.insert(7)
tree.insert(10)
tree.insert(0)
print ("Preorder Printing")
tree.preorder(tree.root)
print("\n\nInorder Printing")
tree.inorder(tree.root)
print("\n\nPostOrder Printing")
tree.postorder(tree.root)

在后遍历中,我们首先移至左侧子树,然后移至右侧子树,最后打印当前元素。

 {"is_active":"True","title":"mr","first_name":"admindoc","last_name":"admindoc","birthdate":"2003-09-01","home_phone":"+654654","mobile_phone":"+654654","gender":"m","language":"fr","email":"xxx+admine@sinnovation.com"}
 {"is_active":"True","first_name":"dok","last_name":"dok","birthdate":"1998-02-03","home_phone":"None","email":"xxx+docteur@sinnovation.com"}

用户可以添加和删除树,添加树时,应提示用户至少输入3个节点... 选择树时,应显示二叉搜索树结构及其 各个节点按插入顺序..... 用户已完成的所有更改如何反映到数据库中。

JJ27502016 回答:我们如何在Django中显示和存储二进制搜索树

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3086547.html

大家都在问