PQ Tree
2591 단어 tree
PQ Tree
philipsweng
PQ 트 리 는 서열 을 모두 배열 하여 일부 관건 점 을 한데 배열 하 는 문 제 를 해결 하 는 데이터 구조 입 니 다.
구체 적 인 조작.우 리 는 PQ 트 리 의 점 을 P, Q 두 가지 유형 으로 나 누 었 다. P 유형 은 아들 이 임의로 순서대로 배열 할 수 있다 는 것 을 나타 내 고 Q 유형 은 아들 이 왼쪽 에서 오른쪽으로 배열 하거나 오른쪽 에서 왼쪽으로 배열 할 수 있다 는 것 을 나타 낸다.또한 PQ 나무의 한 잎 은 전체 배열 의 한 요 소 를 나타 낸다.최종 실행 가능 한 방안 은 PQ 트 리 의 우선 순위 입 니 다.
우리 가 새로운 점 집 S 를 받 아들 일 때, 우 리 는 S 중의 점 을 치밀 하 게 배열 해 야 한 다 는 것 을 나타 낸다.우 리 는 각 점 에 대해 하나의 값 Bel 을 유지 합 니 다. 이 점 의 하위 나무의 잎 이 모두 관건 이 라면 Bel = 1, 하위 나무 에 관건 이 없 으 면 0 입 니 다. 그렇지 않 으 면 2 입 니 다.
우 리 는 나무의 형 태 를 어떻게 조정 하여 현재 의 구속 을 합 법 적 으로 할 것 인 가 를 고려 합 니 다.우 리 는 현재 노드 의 상태 분류 에 대해 토론 한다.우리 의 목적 은 노드 트 리 의 관건 적 인 노드 를 함께 배열 하 는 것 이다.만약 에 Q 류 노드 라면 우 리 는 왼쪽 에서 오른쪽으로 Q 의 아들 의 정 보 를 판단 합 니 다. 우 리 는 아들 의 정 보 를 계속 분류 하여 토론 합 니 다. 현재 노드 의 사 이 드 집합 을 E (E 순서 가 있 음) 로 설정 하고 E1 0 으로 배열 합 니 다. 만약 에 우리 가 이전에 아들 이 0 이 아니 었 다 면 예전 의 관건 적 인 부분 은 여기 서 이미 연결 되 었 습 니 다.E1 에 이 노드 1 을 추가 합 니 다. 만약 에 이전에 관건 적 인 노드 배열 이 끝 났 으 면 우 리 는 지금 또 하나의 관건 적 인 노드 가 많 으 면 불법 입 니 다.그렇지 않 으 면 E1 에 이 노드 를 추가 합 니 다.2: 불법 상황 은 1. 주의해 야 할 것 은 만약 에 2 가 나타 나 고 전에 0 점 이 아 닌 것 이 발생 하면 우리 의 관건 적 인 노드 의 배열 도 끝나 야 한 다 는 것 이다.이 동시에 우 리 는 E1 에 이 노드 의 아들 이 왼쪽 (또는 오른쪽) 에 있 는 순서 (이 단 계 는 재 귀적 으로 처리 해 야 합 니 다. 왜냐하면 우 리 는 그 나무 가 모두 왼쪽 (또는 오른쪽) 에 있어 야 하기 때 문 입 니 다)
현재 P 클래스 노드 라면 Q 클래스 노드 T 를 새로 만 들 고 T 의 변 집합 을 L 로 설정 해 야 합 니 다.우 리 는 먼저 첫 번 째 2 번 노드 P 를 찾 았 다. 이 노드 는 모두 오른쪽 에 있어 야 한다.우리 가 L 에 P 를 넣 은 아들 은 모두 오른쪽 뒤에 있 습 니 다.이어서 우 리 는 P 클래스 노드 T1. E 의 1 번 노드 를 모두 T1 의 변 집중 에 연결 합 니 다.우 리 는 T1 을 L 에 추가 합 니 다. (L 은 순서 가 있 습 니 다. 주의) 우 리 는 다음 2 번 노드 P1 을 모두 왼쪽 에 두 어야 합 니 다.우리 가 L 에 P1 을 넣 은 아들 은 모두 왼쪽 뒤에 있 습 니 다.우 리 는 T 를 E1 에 넣 을 것 이다.마지막 으로 E 의 0 번 노드 를 모두 E1 에 추가 합 니 다.
우 리 는 지금 함수 RotateL (X, E) 을 고려 하고 있 습 니 다. 우 리 는 X 의 하위 트 리 의 관건 적 인 노드 가 모두 왼쪽 에 연속 적 으로 기대 어 E 에 가입 하 는 것 을 말 합 니 다.우 리 는 여전히 X 의 상황 을 분류 토론 해 야 한다.X 가 2 번 노드 보다 많 으 면 이 함수 가 불법 임 이 분명 하 다.그렇지 않 으 면 X 가 Q 류 노드 이 고 T 가 X 인 사 이 드 집합 은 Q 류 노드 가 좌우 로 뒤 집 힐 수 있 기 때문에 우리 가 왼쪽 에서 오른쪽으로 안 되면 우 리 는 사 이 드 집합 을 뒤 집 은 후에 다시 할 것 이다.우선 T 중 1 번 노드 가 T 의 맨 왼쪽 에 연속 으로 배열 되 어 있 지 않 으 면 불법이다.그렇지 않 으 면 우 리 는 E 에 T 의 1 번 노드 를 순서대로 추가 합 니 다.이어서 우 리 는 T 중의 2 번 노드 가 모두 1 번 노드 뒤에 있어 야 한다.그리고 우 리 는 모두 왼쪽 이 필요 하 다.그러면 우 리 는 RotateL (P2, E) 을 재 귀적 으로 처리 합 니 다. 그 다음 에 우 리 는 0 번 노드 를 E 에 삽입 하면 됩 니 다.
X P 。
P Y.
T 1 Y 。
Y E 。
RotateL(P2,E), P2 T 2 。
P Z
T 0 Z 。
Z E 。
。
PQ 트 리 의 정 수 는 노드 를 두 가지 로 나 누고 분류 토론 하 는 데 있다.실질 을 알아차리다.연습 문제: CF 243 E
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이진 트리 가지치기이진 트리의 root가 주어지면 1을 포함하지 않는 (지정된 트리의) 모든 하위 트리가 제거된 동일한 트리를 반환합니다. 노드node의 하위 트리는 node에 node의 자손인 모든 노드를 더한 것입니다. 이 문제는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.