>백엔드 개발 >C++ >C++를 사용하여 연결된 목록의 각 노드를 능가자 수로 바꿉니다.

C++를 사용하여 연결된 목록의 각 노드를 능가자 수로 바꿉니다.

王林
王林앞으로
2023-09-06 13:25:11867검색

C++를 사용하여 연결된 목록의 각 노드를 능가자 수로 바꿉니다.

연결된 목록이 주어지면 주어진 연결 목록에서 현재 요소의 오른쪽보다 큰 요소를 찾아야 합니다. 이러한 요소의 개수는 현재 노드의 값으로 대체되어야 합니다.

다음 문자를 포함하는 연결 리스트를 취하고 각 노드를 능가자 수로 대체해 보겠습니다.

4 -> 6 -> 1 -> 4 -> 6 -> 8 -> 5 -> 8 -> 3

뒤로 시작하여 연결 목록을 순회합니다(따라서 왼쪽에 있는 현재 요소에 대해 걱정할 필요가 없습니다). 우리의 데이터 구조는 현재 요소를 정렬된 순서로 추적합니다. 정렬된 데이터 구조의 현재 요소를 그 위의 총 요소 수로 바꿉니다.

재귀적 방법을 통해 연결된 목록이 뒤로 순회됩니다. 또 다른 옵션은 PBDS입니다. PBDS를 사용하면 특정 키보다 엄격하게 작은 요소를 찾을 수 있습니다. 현재 요소를 추가하고 더 작은 요소에서 이를 뺄 수 있습니다.

PBDS는 중복 요소를 허용하지 않습니다. 그러나 계산하려면 반복되는 요소가 필요합니다. 각 항목을 고유하게 만들기 위해 PBDS에 쌍(첫 번째 = 요소, 두 번째 = 인덱스)을 삽입합니다. 현재 요소와 동일한 전체 요소를 찾기 위해 해시 맵을 사용합니다. 해시 맵은 각 요소의 발생 횟수를 저장합니다(기본 정수 대 정수 매핑).

다음은 연결 리스트의 각 노드를 초월수로 바꾸는 C++ 프로그램입니다. -

으아아아

출력

으아아아

지침

첫 번째 요소의 경우 요소 = [65, 46, 68, 85, 59, 85], 즉 6

두 번째 요소인 요소 = [68, 85, 85]는 3

입니다.

모든 요소 등

결론

이 질문에는 데이터 구조와 재귀에 대한 어느 정도의 이해가 필요합니다. 우리는 방법을 고안한 다음, 관찰과 지식을 바탕으로 우리의 요구 사항을 충족하는 데이터 구조를 도출해야 합니다. 이 기사가 마음에 드셨다면 자세한 내용을 읽고 계속 지켜봐 주시기 바랍니다.

위 내용은 C++를 사용하여 연결된 목록의 각 노드를 능가자 수로 바꿉니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제