프로그래밍 예제 나무

데이터 구조로서 링크된 트리는 각 노드에 값과 다른 노드(해당 자식)에 대한 참조 목록이 있는 노드 그룹입니다. 또한 두 개의 “하향” 참조가 동일한 노드를 가리키지 않는다는 요구 사항도 있습니다. 실제로 트리의 노드에는 일반적으로 다음/이전 참조, 상위 노드에 대한 참조 또는 거의 모든 것과 같은 다른 데이터도 포함됩니다. 형식 이론의 관점에서 트리는 생성자 nil (빈 포리스트) 및 노드 (지정된 값 및 자식 루트 노드가 있는 트리)에 의해 정의된 유도 형식입니다. 계산에서 잘 설립된 트리를 정의하는 일반적인 방법은 재귀 정렬 된 쌍 (F, x)을 통해입니다 : 트리는 새 노드 x.[12] 포리스트 F와 함께 포리스트 F는 쌍으로 분리된 노드 집합이 있는 빈 트리 집합입니다. 정확한 정의를 위해 강제 의 설정 이론 기법에 사용되는 이름의 구성과 유사하게 진행하십시오. X를 노드 집합으로 설정합니다. X 이상의 상부 구조에서 각각 T, F의 트리 및 숲을 정의하고 맵 노드를 정의합니다 : T → x (X) 각 트리의 기본 노드 집합을 할당하여 이러한 함수를 작성하고 t에 대한 이해를 어떻게 밀어 넣었는지에 대한 이야기를 공유합니다. 그리고 함수형 프로그래밍. 내 손을 시도 기대 하는 다음 프로젝트는 같은 일을 하지만 지금 그래프, 그래서 그 게시물에 대 한 계속 지켜봐 주시기 바랍니다.

이러한 함수는 단일 노드에서 수행할 작업을 알아야 하는 간단한 함수입니다. forEach는 트리의 모든 노드에 해당 함수를 적용하는 논리를 처리합니다. 전체적으로 볼 때 트리 데이터 구조는 일반적으로 각 노드에 값이 연결된 정렬된 트리입니다. 구체적으로, 그것은 (비 비어 있어야 하는 경우): 이 데이터 구조는 지시된 그래프를 정의합니다[e] 그리고 트리가 될 수 있도록 트리하나는 글로벌 구조(토폴로지)에 조건을 추가해야 합니다. le 부모)를 클릭하고 트리의 노드가 루트를 가리키지 않습니다. 실제로 루트를 제외한 모든 노드에는 정확히 하나의 부모가 있어야 하며 루트에는 부모가 없어야 합니다. ADT로 일부 유형 E의 값을 가진 추상 트리 유형 T가 정의되며 함수에 의해 추상 포리스트 형식 F (트리 목록)를 사용하여 정의됩니다. 및 트리 데이터 구조는 노드가 최대 하나의 상위에 있을 수 있고 주기가 허용되지 않는 제약 조건을 제거하여 지시된 그래프를 나타내도록 일반화할 수 있습니다.

カテゴリー未分類