JavaScript 및 Python에서 이진 트리 반전
                                            
                                                
                                                
                                                
                                                
                                                
                                                 19429 단어  binarypythonjavascripttutorial
                    
아래 이미지는 프로세스를 간략하게 보여줍니다.
 .따라야 할 단계:-
3 오른쪽 속성을 저장된 왼쪽 속성으로 설정
그런 다음 노드의 오른쪽 속성에 있습니다.
JavaScript의 코드 구현:-
class Node{
    constructor(val){
        this.val = val;
        this.left = null;
        this.right = null;
    }
}
class BST{
    constructor(){
        this.root = null;
    }
    insert(val){
        let newNode = new Node(val);
        if(!this.root){
            this.root = newNode;
        }else{
            let current = this.root;
            while(true){
                if(val < current.val){
                    if(current.left === null){
                        current.left = newNode;
                        return this
                    }else{
                        current = current.left;
                    }
                }else{
                    if(current.right === null){
                        current.right = newNode;
                        return this
                    }else{
                        current = current.right
                    }
                }
            }
        }
    }
       DFSInOrder(){
        let data=[];
        function traverse(node){
            if(node.left) traverse(node.left);
            data.push(node.val);
            if(node.right) traverse(node.right);
        }
        traverse(this.root);
        return data;
    }
    IBT(){
        function Invert(node){
            if(node === null) return ;
            let temp = node.left;
            node.left = node.right;
            node.right = temp;
            Invert(node.left);
            Invert(node.right);
        }
        Invert(this.root)
        return this.DFSInOrder()
    }
}
let tree = new BST();
tree.insert(100);
tree.insert(200);
tree.insert(150);
tree.insert(80);
tree.insert(90);
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(180);
tree.insert(190);
tree.DFSInOrder();
tree.IBT();
파이썬에서:-
class Node:
    def __init__(self,val):
        self.val = val
        self.left = None
        self.right = None
class BST:
    def __init__(self):
        self.root= None
    def insert(self, val):
         newNode = Node(val)
         if self.root == None:
             self.root= newNode
         else:
             current = self.root
             while True:
                 if val< current.val:
                     if current.left == None:
                         current.left = newNode
                         return self
                     else:
                         current= current.left 
                 else:
                     if(current.right == None):
                         current.right = newNode
                         return self
                     else:
                         current = current.right
    def dfsInorder(self):
        data =[]
        def traverse(node):
            if(node.left): traverse(node.left)
            data.append(node.val)
            if(node.right): traverse(node.right)
        traverse(self.root)         
        return data
    def IBT(self):
        def InvertTree(node):
            if node == None: return 
            temp= node.left
            node.left = node.right
            node.right = temp
            InvertTree(node.left)
            InvertTree(node.right)
        InvertTree(self.root) 
        return self.dfsInorder()
bst = BST()
bst.insert(100)
bst.insert(200)
bst.insert(150)
bst.insert(175)
bst.insert(160)
bst.insert(180)
bst.insert(75)
bst.insert(50)
bst.insert(65)
bst.insert(40)
bst.insert(55)
bst.insert(20)
print(bst.dfsInorder())
print(bst.IBT())
좋은 주말 되세요.
Reference
이 문제에 관하여(JavaScript 및 Python에서 이진 트리 반전), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/edwardcashmere/inverting-a-binary-tree-in-javascript-and-python-ncp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)