두 갈래 트리 찾기 알고리즘
16255 단어 학습 노트
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
차례차례
def preorder(root:TreeNode):
""" , """
if root == None:
return
else:
print(root.val)
preorder(root.left)
preorder(root.right)
차례차례
def inorder(root:TreeNode):
""" , """
if root == None:
return
else:
inorder(root.left)
print(root.val)
inorder(root.right)
차례차례
def postorder(root:TreeNode):
""" , """
if root == None:
return
else:
postorder(root.left)
postorder(root.right)
print(root.val)
차례차례
def levelorder(root:TreeNode):
""" , """
level=0
while printLevel(root,level):
level +=1
def printLevel(root:TreeNode, level):
""" , , """
if root==None or level<0:
return False
elif level == 0:
print(root.val)
return True
else:
return printLevel(root.left, level-1) + printLevel(root.right, level-1)
선착순
def preorderWithStack(root:TreeNode):
""" , """
stack = []
pnode = root
while pnode or len(stack)>0:
while pnode:
print(pnode)
stack.append(pnode)
pnode = pnode.left
if len(stack)>0:
pnode = stack.pop().right
중순으로 두루 다니다
def inorderWithStack(root:TreeNode):
""" , """
stack =[]
pnode = root
while pnode or len(stack)>0:
while pnode:
stack.append(pnode)
pnode = pnode.left
if len(stack)>0:
top = stack.pop()
print(top.val)
pnode = top.right
뒷순서가 두루 다니는데, 비귀속적이어서, 이것은 약간 복잡하다.
def postorderWithStack(root:TreeNode):
""" , , """
stack = []
pnode = root
stack.append(pnode)
while len(stack)>0:
top = stack[:-1]
if (not pnode.right and not pnode.left) \
or (pre and (pre==pnode.left or pre==pnode.right)):
print(top.val)
pre = stack.pop()
if pnode.right:
stack.append(pnode.right)
if pnode.left:
stack.append(pnode.left)
차례차례
def levelorderWithStack(root:TreeNode):
""" , """
stack=[]
stack.append(root)
tempstack = []
while len(stack)>0:
for x in stack:
print(x.val)
if x.left:
tempstack.append(x.left)
if x.right:
tempstack.append(x.right)
stack = tempstack
tempstack=[]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 학습노트(6) 함수 객체모방 함수는 모두pass-by-value이다 함수 대상은 값에 따라 전달되고 값에 따라 되돌아오기 때문에 함수 대상은 가능한 한 작아야 한다(대상 복사 비용이 크다) 함수 f와 대상 x, x 대상에서 f를 호출하면:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.