python 이 진 트 리
이 진 트 리 는 Python 의 전형 적 인 사례 로 서 실질 적 으로 갈 라 지 는 형식의 배열 입 니 다. 한 노드 로 시작 하여 매번 에 두 개의 좌우 부분 노드 를 연장 하고 서브 노드 가 없 을 때 까지 무한 연장 합 니 다.
이런 노드 들 은 어 지 러 워 보이 지만 사실은 특정한 규칙 에 따라 순서대로 읽 을 수 있다. 이것 은 전문 적 인 읽 기 방법 이 라 고 볼 수 있다.최상 위 가 전체 폴 더 라 고 가정 하면 뒤의 내용 은 폴 더 의 다음 단계 이 고 이 진 트 리 의 옮 겨 다 니 는 방식 으로 모든 파일 을 안전하게 읽 을 수 있 습 니 다.
이 진 트 리 의 옮 겨 다 니 는 방식
나 는 이 진 트 리 에 네 가지 옮 겨 다 니 는 방식 이 있다 는 것 을 알 고 있다. 앞 순서, 가운데 순서, 뒤 순서 와 층 별로 옮 겨 다 니 는 것 이다.이 진 트 리 간편 설명도: A ↙ ↘ B C A 는 이 노드 의 부모 노드 를 뿌리 노드 라 고도 부 르 고 B 는 왼쪽 노드 이 며 C 는 오른쪽 노드 이다.그 중에서 앞의 순서 배열 방식 은 뿌리 정도 이 고 세 개의 관련 된 작은 노드 를 종합 하여 보면 모두 뿌리 정도 의 형식 으로 한다. 만약 에 더 많은 서브 노드 의 상황 이 라면 약간 복잡 해 보이 지만 이런 방식 으로 볼 수 있다.3 층 이 진 트 리: A ↙ ↘ B C ↙ ↘ ↙ ↘ D E F G 앞 순서: 먼저 BDF, CFG 를 A 의 좌우 부분 노드 로 보고 A 부터 읽 습 니 다. A 를 첫 번 째 로 한 다음 에 왼쪽 부분 BDE 에 들 어 갑 니 다. 이때 이 를 작은 이 진 트 리 로 보고 그 순 서 는 BDF 입 니 다. 이것 을 읽 고 A 를 뿌리 로 하 는 세 가지 구 조 는 뿌리 왼쪽 을 다 읽 은 다음 에 CFG 를 남 깁 니 다. 이때 CFG 를 읽 습 니 다.지금까지 이 이 진 트 리 의 앞 순 서 는 ABDRCFG 로 조합 되 었 습 니 다. 이런 독법 은 위 에서 아래로, 뿌리 부터 아래 의 모든 노드 구 조 를 뿌리 좌우 로 읽 고 하위 노드 가 있 는 상황 에서 왼쪽 노드 를 읽 고 읽 은 다음 에 오른쪽 을 읽 습 니 다.그 격식 을 요약 하면 뿌리 부터 왼쪽 을 찾 고 왼쪽 을 뿌리 로 하 며 왼쪽 을 찾 고 없 으 면 오른쪽 을 찾 고 오른쪽 을 뿌리 로 하 며 왼쪽 을 찾 고 없 으 면 오른쪽 을 찾 고 없 으 면 상급 오른쪽 을 찾 아 유추 한다.중 서: 먼저 BDF, CFG 를 A 의 좌우 부분 노드, A1, A2 로 본다.중 서 의 독법 은 왼쪽 뿌리 오른쪽, A1, A, A2 이다.그 다음 에 A1 을 보면 D 는 왼쪽 이 고 B 는 가운데 이 며 E 는 오른쪽 이 고 D 는 잎 노드 (무 자식 노드) 이기 때문에 D 부터 DBE, A1 을 다 읽 은 다음 에 A 이 고 A2, A2 는 FCG 이 므 로 중간 순 서 는 DBE > A > FCG 이다.후 서: 좌우 뿌리, A1, A2, A.A1 좌우 뿌리: DEB, A2 는 FGC, A1, A2, A 는 DEBFGCA 입 니 다.층 별로 옮 겨 다 니 면 의미 가 크 지 않 습 니 다. 층 별로 보면 위 에서 아래로, 왼쪽 에서 오른쪽으로, 맞습니다. 바로 ABCDEFG 입 니 다.이 진 트 리 형식 은 폴 더 형식 으로 보이 지만 그 용 도 는 검색, 삽입 수치 와 삭제 에 있 습 니 다. 구체 적 인 것 은 지식 이 유한 하기 때문에 아직 말 할 수 없습니다.
이 진 트 리 를 만 드 는 python 파일 을 만 들 려 면 먼저 노드 클래스 를 만 듭 니 다. 인 스 턴 스 가 대상 이 될 때마다 부모 노드 로 존재 합 니 다. 기본 값 은 \ # 이 고 두 개의 노드 가 None 입 니 다.
class Note(object):
def __init__(self):
self.data = '#'
self.l_tree = None
self.r_tree = None
이 어 tree 류 를 만 들 고 노드 류 에 계승 합 니 다. 그 중에서 트 리 구 조 를 만 드 는 방법 이 있 습 니 다.
class Tree(Note):#
def create_tree(self,tree):# :
data = raw_input('->')# data
if data == '#':# # , ,
tree = None
else:
tree.data = data# , data
tree.l_tree = Note()#
self.create_tree(tree.l_tree)# ,
tree.r_tree = Note()#
self.create_tree(tree.r_tree)# ,
다음으로 전송:https://blog.csdn.net/qq_36197940/article/details/77482493
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.