여기에서 언어 L ={AiBjCk | 나는
k; k ≥ 1}. 그래서 이것은 우리가 단지 3개의 문자, b, c를 사용하는 일종의 언어를 나타냅니다. w는 문자열입니다. 따라서 w =aaaaaabbbbccc이면 튜링 기계가 이를 받아들입니다. |A|, 그렇지 않으면 승인됩니다. 상태 전환 다이어그램
여기에서 언어 L ={0n1n2n | n ≥ n}. 따라서 이것은 0, 1 및 2의 세 문자만 사용하는 일종의 언어를 나타냅니다. w는 문자열입니다. 따라서 w =000111222이면 튜링 기계가 이를 수락합니다. 이를 해결하기 위해 이 접근 방식을 사용합니다. 먼저 앞에서 하나의 0을 x로 바꾼 다음 하나가 1이 될 때까지 오른쪽으로 계속 이동하고 이 1을 y로 바꿉니다. 다시 1이 될 때까지 오른쪽으로 계속 이동하고 z로 바꾸고 왼쪽으로 이동합니다. 이제 하나의 x를 찾을 때까지 왼쪽으로 계속 이동합니다. 얻을 때 오른쪽으로
여기에서 언어 L ={WW |W는 {0, 1}}에 속하는 튜링 머신을 만드는 방법을 볼 것입니다. 따라서 이것은 0과 1 두 개의 문자만 사용하는 일종의 언어를 나타냅니다. w는 문자열입니다. 따라서 w =10110이면 튜링 기계는 문자열 z =1011010110을 받아들입니다. 이를 해결하기 위해 이 접근 방식을 사용합니다. 첫 번째는 문자열의 중간점을 찾는 것입니다. 0을 x로, 1을 y로 변환합니다. 계속해서 수행한 후 모든 0과 1이 각각 x와 x로 변환되었을 때 지점에 도달합니다. 이제 우리는 문자열의 중간 지점에 있습니
여기에서 언어 L ={WWr을 위한 튜링 기계를 만드는 방법을 볼 것입니다. |W는 {0, 1}}에 속합니다. 따라서 이것은 0과 1의 두 문자만 사용하는 일종의 언어를 나타냅니다. w는 문자열이고 wr 그것의 반대입니다. 따라서 w =10110이면 wr 01101이 됩니다. 따라서 튜링 기계는 문자열 z =1011001101을 받아들입니다. 이를 해결하기 위해 이 접근 방식을 사용합니다. 먼저 첫 번째 기호를 확인하고 0이면 y로 바꾸고 1이면 x로 바꾸세요. 그런 다음 문자열의 끝으로 이동합니다. 따라서 마지막 기호는 첫 번째
하나의 사전 주문 순회가 있다고 가정합니다. 이 순회에서. 트리를 생성해야 합니다. 따라서 순회가 [10, 5, 1, 7, 40, 50]과 같으면 트리는 다음과 같습니다. - data… max… INT_MAX}로 설정하세요. 예시 #include <iostream> using namespace std; class node { public: int data; node *left; nod
하나의 사전 주문 순회가 있다고 가정합니다. 이 순회에서. 트리를 생성해야 합니다. 따라서 순회가 [10, 5, 1, 7, 40, 50]과 같으면 트리는 다음과 같습니다. - 이 문제를 해결하기 위해 다음 단계를 따릅니다. − 빈 스택 생성 첫 번째 값을 루트로 만들고 스택에 푸시합니다. 이제 스택이 비어 있지 않고 다음 값이 스택 맨 위 요소보다 큰 동안 계속 똥을 쌉니다. 이것을 마지막으로 팝된 노드의 오른쪽 자식으로 만듭니다. 이제 새 노드를 스택으로 푸시합니다. 다음 값이 맨 위 요소보다 작으면 스
하나의 레벨 순서 순회가 있다고 가정합니다. 이 순회에서. 트리를 생성해야 합니다. 따라서 순회가 [7, 4, 12, 3, 6, 8, 1, 5, 10]과 같으면 트리는 - 이를 해결하기 위해 재귀적 접근 방식을 사용합니다. 첫 번째 요소는 루트가 됩니다. 두 번째 요소는 왼쪽 자식이 되고 세 번째 요소는 오른쪽 자식이 됩니다(BST의 조건이 충족되는 경우). 이 속성은 모든 요소에 대해 충족됩니다. 따라서 우리는 다음 단계를 따를 것입니다 - 처음에는 배열의 첫 번째 요소를 가져와 루트로 만들어야 합니다. 그런 다음
이 튜토리얼에서는 주어진 이진 트리를 논리 AND 속성을 보유하는 트리로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 이진 트리가 제공됩니다. 우리의 임무는 노드가 자식 노드의 AND 연산 값을 갖는다는 것을 의미하는 논리적 AND 속성을 보유하는 트리로 변환하는 것입니다. 모든 노드는 0 또는 1의 값을 가질 수 있습니다. 예 #include<bits/stdc++.h> using namespace std; //node structure of binary tree struct Node{
이 자습서에서는 이진 트리를 이중 연결 목록으로 변환하는 프로그램에 대해 설명합니다. 이를 위해 이진 트리가 제공됩니다. 우리의 임무는 왼쪽 및 오른쪽 포인터가 이전 및 다음 포인터가 되도록 이중 연결 목록으로 변환하는 것입니다. 또한 이중 연결 목록의 순차 순서는 이진 트리의 중위 순회와 같아야 합니다. 이를 위해 우리는 매우 직접적인 접근 방식을 취하고 있습니다. 이중 연결 리스트의 노드를 순서대로 이진 트리를 순회하고 마지막으로 왼쪽과 오른쪽을 각각 이전 노드와 다음 노드로 만듭니다. 예시 #include <iostr
이 자습서에서는 이진 트리를 이중 연결 목록으로 변환하는 프로그램에 대해 설명합니다. 이를 위해 이진 트리가 제공됩니다. 우리의 임무는 왼쪽 및 오른쪽 포인터가 이전 및 다음 포인터가 되도록 이중 연결 목록으로 변환하는 것입니다. 또한 이중 연결 목록의 순차 순서는 이진 트리의 중위 순회와 같아야 합니다. 이를 위해 우리는 다른 접근 방식을 취하고 있습니다. 우리는 역순으로 이진 트리를 탐색할 것입니다. 이와 함께 새 노드를 만들고 헤드 포인터를 최신 노드로 이동합니다. 이렇게 하면 끝에서 시작까지 이중 연결 목록이 생성됩니다.
이 튜토리얼에서는 일반 이진 탐색 트리를 균형 이진 탐색 트리로 변환하는 프로그램에 대해 설명합니다. 이를 위해 왼쪽 또는 오른쪽에 치우친 이진 검색 트리가 제공됩니다. 우리의 임무는 특정 규칙 세트에 따라 균형 이진 검색 트리로 변환하는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //node structure of tree struct Node{ int data; Node* left, *right; }; //trave
이 튜토리얼에서는 숫자를 음수 표현으로 변환하는 프로그램에 대해 설명합니다. 이를 위해 숫자와 해당 음수 기준이 제공됩니다. 우리의 임무는 주어진 숫자를 음수 기준으로 변환하는 것입니다. 음수 기본 값에는 -2와 -10 사이의 값만 허용됩니다. 예시 #include <bits/stdc++.h> using namespace std; //converting integer into string string convert_str(int n){ string str; stringstr
이 튜토리얼에서는 주어진 연산의 최소 수를 사용하여 숫자 m을 n으로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 두 개의 정수 m과 n이 제공됩니다. 우리의 임무는 주어진 연산을 최소 횟수로 사용하여 정수 m을 n으로 변환하는 것입니다. 허용된 작업 - 주어진 숫자에 2를 곱하세요 주어진 숫자에서 하나 빼기 예시 #include <bits/stdc++.h> using namespace std; //finding minimum number of operations required int conv
이 튜토리얼에서는 길이가 N인 숫자를 변환하는 프로그램에 대해 논의할 것입니다. 이 프로그램은 최소 K번의 숫자를 포함합니다. 이를 위해 주어진 길이 N의 숫자가 제공됩니다. 우리의 임무는 주어진 숫자의 숫자를 변환하여 한 숫자가 최소한 K번 반복되도록 하는 것입니다. 또한 이 연산의 절대적 차이인 이 연산의 비용을 계산하고 최종적으로 최소 비용을 출력해야 합니다. 예시 #include <bits/stdc++.h> using namespace std; //calculating the minimum value and fi
이 튜토리얼에서는 문장을 상응하는 모바일 숫자 키패드 시퀀스로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 알파벳 문자열이 제공됩니다. 우리의 임무는 문자열에 해당하는 숫자, 즉 특정 문자열을 입력하기 위한 키의 숫자 시퀀스를 인쇄하는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //computing the numerical sequence string calc_sequence(string arr[], string input){ str
이 튜토리얼에서는 문자열을 문자의 정방 행렬 격자로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 문자열이 제공됩니다. 우리의 임무는 특정 문자열을 특정 수의 행과 열이 있는 행렬 격자 형식으로 인쇄하는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //converting the string in grid format void convert_grid(string str){ int l = str.length(); in
이 튜토리얼에서는 문자열을 16진수 ASCII 값으로 변환하는 프로그램에 대해 설명합니다. 이를 위해 문자열이 제공됩니다. 우리의 임무는 주어진 특정 문자열을 해당하는 16진수로 인쇄하는 것입니다. 예시 #include <stdio.h> #include <string.h> //converting string to hexadecimal void convert_hexa(char* input, char* output){ int loop=0; int i=0;
이 튜토리얼에서는 트리를 짝수 노드의 포리스트로 변환하는 프로그램에 대해 설명합니다. 이를 위해 N 노드의 이진 트리가 제공됩니다. 우리의 임무는 짝수 노드의 숲을 얻기 위해 제거할 수 있는 최대 가장자리 수를 계산하는 것입니다. 예시 #include<bits/stdc++.h> #define N 12 using namespace std; //returning the number of nodes of subtree //having the root node int depth_search(vector<int> tr
이 튜토리얼에서는 모든 소문자를 대문자로 변환하는 프로그램에 대해 논의할 것입니다. 이를 위해 문자열과 정수 값 k가 제공됩니다. 우리의 임무는 주어진 문자열을 순회하고 ASCII 값이 주어진 정수 k와 같은 소수인 모든 문자를 대문자로 변경하는 것입니다. 예시 #include <bits/stdc++.h> using namespace std; //modifying the given string void convert_string(string s, int k){ int l = s.length();