이 튜토리얼에서는 큐 데이터 구조를 사용하여 이진 트리를 스레드된 이진 트리로 변환하는 프로그램에 대해 설명합니다. 이를 위해 바이너리 트리가 제공됩니다. 우리의 임무는 대기열 데이터 구조의 도움으로 더 빠른 순회 순회를 위해 추가 경로를 추가하여 특정 이진 트리를 스레드된 이진 트리로 변환하는 것입니다. 예시 #include <iostream> #include <queue> using namespace std; //node structure for threaded tree struct Node {  
이 튜토리얼에서는 모든 큰 키의 합이 모든 키에 추가되도록 BST를 이진 트리로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 이진 검색 트리가 제공됩니다. 우리의 임무는 그 트리를 현재 키에 더해진 더 큰 모든 키의 합으로 이진 트리로 변환하는 것입니다. 이것은 모든 이전 요소의 합계를 가지고 마지막으로 현재 요소에 추가하는 것과 함께 주어진 BST의 순서로 역순으로 수행됩니다. 예시 #include <bits/stdc++.h> using namespace std; //node structure of BST s
이진 검색은 배열의 중간 값과 비교하고 값으로 나누어 요소를 검색하는 검색 알고리즘입니다. 알고리즘은 요소를 찾을 때까지 이 작업을 반복적으로 수행합니다. 이진 검색을 적용하려면 배열을 정렬해야 합니다. 이진 검색의 시간 복잡도는 대수 입니다. 주문하다. 이것이 프로그래머가 알고리즘 코딩 시간을 줄이기 위해 구현과 함께 바이너리 검색과 관련된 약어를 아는 것이 매우 중요한 이유입니다. 여기에서는 표준 템플릿 라이브러리(STL)에 포함된 바이너리 검색 알고리즘과 관련된 기능에 대해 설명합니다. 하한 − 하한 검색은 요소가 발
대수 검색으로 알려진 이진 검색은 정렬된 배열에서 요소를 검색하는 검색 알고리즘입니다. 알고리즘은 배열을 재귀적으로 두 개의 반으로 나눕니다. 요소가 중간 위치에 있으면 반환하고 그렇지 않으면 나누기를 호출하고 요소를 찾을 때까지 다시 확인합니다. 작업 알고리즘은 정렬된 배열의 중간 요소를 검색할 요소와 비교하여 작동합니다. 검색 요소가 같음인 경우 중간 요소로 이동한 다음 색인 반환 요소의. 검색 요소가 더 크면 중간 요소보다 왼쪽 하위 배열에서 검색 즉, 중간의 다음 요소에서 배열의 끝까지 하위 배열입니다. 검색 요소가
단일 연결 목록 한 방향으로만 갈 수 있는 연결 리스트(노드의 값과 다음 노드의 메모리 위치를 저장하는 데이터 구조)입니다. 바이너리 검색 분할 규칙에 기반한 검색 알고리즘입니다. 이는 구조의 중간 요소를 찾고 부등식에 대해 동일한 알고리즘에 대한 재귀 호출을 비교하고 사용합니다. 여기에 단일 연결 목록과 이진 검색을 사용하여 찾을 요소가 제공됩니다. 단일 연결 리스트는 포인터를 하나만 사용하는 데이터 구조이기 때문에 중간 요소를 찾기가 쉽지 않습니다. 단일 연결 목록의 중간에 두 가지 포인터 접근 방식을 사용합니다. 알고리즘
이진 검색 트리(BST) 다음 규칙을 따르는 특별한 유형의 트리입니다 - 왼쪽 자식 노드의 값은 항상 부모 노트보다 작습니다. 오른쪽 자식 노드는 부모 노드보다 더 큰 값을 가집니다. 모든 노드는 개별적으로 이진 검색 트리를 형성합니다. 이진 검색 트리(BST)의 예 - 검색, 최소값 및 최대값 찾기와 같은 작업의 복잡성을 줄이기 위해 이진 검색 트리가 생성됩니다. BST에서 검색 작업 이진 검색 트리에서 검색 수행, 트리에서 키를 찾아야 합니다. 이를 위해 키를 트리의 루트 노드와 비교합니다. 키가 루트 노드와 같
이진 검색 트리(BST) 다음 규칙을 따르는 특별한 유형의 트리입니다 - 왼쪽 자식 노드의 값은 항상 부모보다 작습니다. 참고 오른쪽 자식 노드는 부모 노드보다 큰 값을 가집니다. 모든 노드는 개별적으로 이진 검색 트리를 형성합니다. 이진 검색 트리(BST)의 예 - 검색, 최소값 및 최대값 찾기와 같은 작업의 복잡성을 줄이기 위해 이진 검색 트리가 생성됩니다. 이진 검색 트리(BST) 작업 삭제 삭제 작업은 트리에서 지정된 노드를 삭제합니다. 노드를 삭제하는 경우 세 가지 가능성이 있습니다 - 트
이진 트리는 트리의 각 노드가 최대 두 개의 자식 노드를 가질 수 있는 특수한 유형의 트리입니다. 이러한 자식 노드를 오른쪽 자식과 왼쪽 자식이라고 합니다. 간단한 이진 트리는 - 나무를 나타내는 방법에는 두 가지가 있습니다. 연결 목록을 사용하는 동적 노드 표현 배열을 사용하는 순차 표현. 여기서는 이진 트리의 배열 표현에 대해 설명합니다. 이를 위해 BT의 노드에 번호를 매겨야 합니다. 이 번호는 0에서 (n-1) 또는 1에서 n으로 시작할 수 있습니다. 배열에서 노드와 해당 상위 및 하위 노드의 위치를 파생시
이진 트리 트리의 각 노드가 최대 두 개의 자식 노드를 가질 수 있는 특수한 유형의 트리입니다. 이 자식 노드를 오른쪽 자식과 왼쪽 자식이라고 합니다. 간단한 이진 트리는 - 이진 검색 트리(BST) 다음 규칙을 따르는 특별한 유형의 트리입니다 - 왼쪽 자식 노드의 값은 항상 부모보다 작습니다. 참고 오른쪽 자식 노드는 부모 노드보다 더 큰 값을 가집니다. 모든 노드는 개별적으로 이진 검색 트리를 형성합니다. 이진 검색 트리(BST)의 예 - 검색, 최소값 및 최대값 찾기와 같은 작업의 복잡성을 줄
임의 변수 여러 결과를 일으킬 가능성이 있는 프로세스 결과의 결과인 변수입니다. 예를 들어, 동전을 던졌을 때 앞면 또는 뒷면을 나타내는 변수는 랜덤 변수입니다. 이항 확률 변수는 특정 이벤트의 결과 확률이 고정된 이벤트와 관련된 값을 갖는 특수한 유형의 확률 변수입니다. 이항 확률 변수를 특별하게 만드는 특정 속성이 있습니다. 이것은 변수가 이항 확률 변수가 되기 위한 필수 요소입니다 - 결과의 총 개수는 고정되어 있습니다. 흔적의 결과는 참 또는 거짓이며 그 사이에 아무 것도 없습니다. 발생 확률은 각 트레일
이 프로그래밍 문제에서 문자열이 주어지고 구성할 수 있는 문자열 요소의 고유한 정렬된 순열을 인쇄해야 합니다. 이 문제의 조건은 문자열에 두 번 이상 발생할 문자가 포함될 수 있다는 것입니다. 또한 주어진 문자열을 정렬된 순서로 입력합니다. 개념을 더 잘 이해할 수 있도록 예를 들어 보겠습니다. Input : ABD Output : ABD , ADB , BAD , BDA , DAB , DBA INPUT : RSTU OUTPUT : RSTU , RSUT , RTSU , RTUS , RUST , RUTS , SRTU , SRUT ,
이 문제에서 우리는 사용자가 제공하는 특정 한계 내에서 머무르는 방식으로 양의 방향 또는 음의 방향을 이동하는 유효한 방법을 찾아야 합니다. 여기에서 우리는 이동할 수 있는 최대값과 이동할 n개의 양수 값의 배열인 특정 최대 한계 K가 제공됩니다. K 값을 절대 교차하지 않도록 이동하려면 시퀀스, 즉 양수 또는 음수 방향을 반환해야 합니다. 주제를 더 잘 이해하기 위해 예를 들어 보겠습니다. Input : K = 56 and the array is [25 , 14 , 31 , 16 , 5]. Output : positive po
이 문제에서는 숫자가 주어지고 숫자에서 더 많은 숫자를 제거해야 합니다. 제거 후 생성된 새로운 숫자는 6으로 나누어 떨어지도록 합니다. 개념을 더 잘 배우기 위해 예를 들어 보겠습니다 − Input : 1324 Output : 4 설명 − 4번째 숫자를 제거하면 6으로 나누어지는 132가 됩니다. 여기에 숫자가 주어지고 6으로 나누어 떨어지도록 숫자가 제거된 위치를 반환해야 합니다. 이 문제를 해결하기 위해 문제를 해결하는 논리를 만들려고 합니다. 이를 위해 우리는 숫자가 2와 3으로 나누어 떨어지면 6으로 나눌 수 있다는
이진 트리 모든 노드에 최대 2개의 자식 노드가 있는 특수 트리입니다. 따라서 모든 노드는 리프 노드이거나 하나 또는 두 개의 하위 노드가 있습니다. 예 이 문제에서 이진 트리가 주어지고 트리의 노드가 있고 노드의 사촌 노드를 찾아야 합니다. 이진 트리에 대해 형제 노드가 인쇄되지 않습니다. 예를 들어 보겠습니다. 위의 이진 트리에서 사촌 노드는 5입니다. 개념을 더 명확하게 하기 위해 사촌 노드를 설명하겠습니다. 이진 트리에서 두 노드는 이진 트리에서 동일한 수준(깊이)에 있지만 동일한 부모 노드가 없는 경우 사
이 문제에서는 일련의 문자가 주어지고 두 개 이상의 문자가 연속적이면 한 줄에 함께 인쇄하는 방식으로 동일한 문자열을 인쇄해야 합니다. 그렇지 않으면 줄 바꿈을 사용하여 다른 줄로 인쇄하십시오. 개념을 더 잘 이해할 수 있도록 예를 들어 보겠습니다. Input : abcxstk Output : abc x st k 설명 − abc 이후 순서대로 한 줄에 인쇄됩니다. 그런 다음 순서가 아닌 x가 나오므로 여기에 줄 바꿈을 추가합니다. 다음은 x가 있는 시퀀스가 아닌 s이므로 줄 바꿈을 추가합니다. 다음은 s가 순서대로 인쇄되어
이 문제에서는 2D 행렬에 직사각형 패턴을 인쇄해야 합니다. 서로 동심원이 되도록 합니다. 이 문제를 더 잘 이해하기 위해 예를 들어보겠습니다. For n=4 is : 4 4 4 4 4 4 4 4 3 3 3 3 3 4 4 3 2 2 2 3 4 4 3 2 1 2 3 4 4 3 2 2 2 3 4 4 3 3 3 3 3 4 4 4 4 4 4 4 4 여기서 n, 정수 값을 취하
이 문제에서는 일련의 문자인 문자열이 제공됩니다. 그리고 지그재그 패턴의 길이가 주어지고 이 지그재그 문자열의 연결 문자열을 n 행으로 인쇄해야 합니다. 개념을 더 잘 이해할 수 있도록 몇 가지 예를 살펴보겠습니다. 예 Input : string = ‘STUVWXYZ’ n = 2. Output : SUWYTVXZ 설명 - 2행 패턴의 문자열에 대한 지그재그 패턴은 - S U W Y T V &n
이 문제에서는 이진 트리가 주어지고 이진 트리의 두 노드가 정의됩니다. 그리고 노드의 모든 공통 조상, 즉 루트에서 노드로의 순회 경로에서 발생하는 공통 노드를 인쇄해야 합니다. 이진 트리 모든 노드에 최대 2개의 자식 노드가 있는 특수 트리입니다. 따라서 모든 노드는 리프 노드이거나 하나 또는 두 개의 하위 노드가 있습니다. 예 상위 노드 트리의 하위 노드에 연결된 노드입니다. 공통 조상 노드 두 노드 중 하나는 트리에서 두 노드의 조상 노드인 노드입니다. 예: - 위의 이진 트리에서 0과 6의 공통 조상을 찾아
이 문제에서는 두 개의 이진 탐색 트리가 주어지고 공통 노드를 찾아야 합니다. 이진 트리 모든 노드에 최대 2개의 자식 노드가 있는 특수 트리입니다. 따라서 모든 노드는 리프 노드이거나 하나 또는 두 개의 하위 노드가 있습니다. 예 여기에 두 개의 이진 트리가 있고 두 트리에 대해 동일한 모든 노드를 인쇄해야 합니다. 이 문제에 대한 해결책을 찾기 위해 보조 스택을 사용하는 프로그램을 만들어 봅시다. 두 개의 동일한 값이 발생할 때 요소를 팝업하여 작동합니다. 예시 #include<iostream> #incl
이 프로그래밍 문제에서는 두 개의 문자열이 제공됩니다. 그리고 두 문자열에서 공통적인 문자열의 모든 문자를 찾아야 하고 이 공통 문자를 알파벳 순서로 인쇄해야 합니다. . 그리고 공통 문자가 나오지 않으면 NO COMMON CHARACTERS 를 인쇄하십시오. 문자열에 모든 소문자 알파벳이 포함되어 있지는 않습니다. 예를 들어 보겠습니다 - Input : string1 : adsfhslf string2 : fsrakf Output : affs 설명 - 두 문자열 사이에는 a, f, s가 있습니다. 따라서