-
C++で単一リンクリストを循環リンクリストに変換する
このチュートリアルでは、単一リンクリストを循環リンクリストに変換するプログラムについて説明します。 このために、単一リンクリストが提供されます。私たちのタスクは、そのリストの要素を取得して、循環リンクリストに変換することです。 例 #include <bits/stdc++.h> //node structure of linked list struct Node { int data; struct Node* next; }; //converting singly linked list //to circular li
-
単一リンクリストをC++のXORリンクリストに変換します
このチュートリアルでは、単一リンクリストをXORリンクリストに変換するプログラムについて説明します。 このために、単一リンクリストが提供されます。私たちのタスクは、そのリストの要素を取得して、XORリンクリストに変換することです。 例 #include <bits/stdc++.h> using namespace std; //node structure of linked list struct Node { int data; struct Node* next; }; //creation of new node No
-
C++で文字列をバイナリシーケンスに変換する
このチュートリアルでは、文字列をバイナリシーケンスに変換するプログラムについて説明します。 このために、文字列が提供されます。私たちのタスクは、各文字を同等の2進数に変換し、異なる文字の間隔を空けて印刷することです。 例 #include <bits/stdc++.h> using namespace std; //converting into binary equivalent void convert_binary(string s){ int n = s.length(); for (int i = 0; i <=
-
C++で三項式を二分木に変換する
このチュートリアルでは、三項式を二分木に変換するプログラムについて説明します。 このために、三項式が提供されます。私たちの仕事は、可能なさまざまなパス(選択肢)に応じて、与えられた式を二分木の形に変換することです。 例 #include<bits/stdc++.h> using namespace std; //node structure of tree struct Node { char data; Node *left, *right; }; //creation of new node Node *newNode(ch
-
配列のGCDがC++で1になるように配列を変換します
このチュートリアルでは、配列のGCDが1になるように配列を変換するプログラムについて説明します。 このために、配列と正の整数kが提供されます。私たちのタスクは、要素のGCDが1になるように配列要素を変換する一方で、要素がk未満になるまで、配列要素をkで何回でも除算することです。 例 #include <bits/stdc++.h> using namespace std; //calculating the GCD of array int calculate_gcd(int* arr, int n){ int gcd = arr[0];
-
ASCII値の文をC++で同等の文字列に変換します
このチュートリアルでは、ASCII値の文を同等の文字列に変換するプログラムについて説明します。 このために、ASCIIコードを含む文字列が提供されます。私たちのタスクは、指定された文字列を同等の文字に変換して印刷し直すことです。 例 #include <bits/stdc++.h> using namespace std; //converting the ASCII sequence into //character string void convert_ASCII(string str, int len){ int num = 0;
-
C ++で1文字だけ変更して、文字列を回文文字列に変換します
このチュートリアルでは、1文字だけを変更して文字列を回文文字列に変換するプログラムについて説明します。 このために、文字列が提供されます。私たちのタスクは、1文字だけを変更することで、指定された文字列を回文に変換することです。 例 #include<bits/stdc++.h> using namespace std; //checking if conversion to palindrome //is possible bool if_palindrome(string str){ int n = str.length();  
-
C ++で1より大きい長さのパスがないように、無向グラフを有向グラフに変換します
このチュートリアルでは、1を超える長さのパスがないように、無向グラフを有向グラフに変換するプログラムについて説明します。 このために、無向グラフが提供されます。私たちのタスクは、パスの長さが1より大きい場合に、そのグラフを直接グラフに変換することです。 例 #include <bits/stdc++.h> using namespace std; #define N 100005 //storing the graph vector<int> gr[N]; //storing colour of each vertex int colour[N]; vector<
-
C++で時間を24時間制から12時間制に変換します
このチュートリアルでは、時間を24時間制から12時間制に変換するプログラムについて説明します。 このため、24時間形式で特定の時間が提供されます。私たちのタスクは、「AM」または「PM」を拡張子として12時間形式に変換することです。 例 #include <bits/stdc++.h> using namespace std; //converting into 12 hour format void convert_12hour(string str){ int h1 = (int)str[0] - '0';
-
C++で指定された文字列配列のアナグラムのすべてのペアを出力します
この問題では、文字列の配列が与えられ、その配列のアナグラムのすべてのペアを出力する必要があります。 アナグラム 別の文字列の文字を再配置することによって形成される文字列です。 Like − hello and lolhe 問題を理解するために例を見てみましょう- Input: array = {“hello”, “hrdef”, “from”, “lohel”, “morf”}. Output: [hello, lohel] , [from , morf] この問題を
-
C ++で合計が等しい、ソートされていない配列のすべてのペアを出力します
この問題では、並べ替えられていない配列があり、この配列内で合計が等しいすべてのペアを出力する必要があります。 問題を理解するために例を見てみましょう- Input: array = [12, 13, 20, 5] Output: [12, 13] and [20, 5] have sum 25. この問題を解決するには、同じ合計のペアを見つける必要があります。このために、同じ合計のペアをチェックします。また、ペアの重複を避けるために、マップを使用します。 このために、2つのマップが必要になります。1つはすべての合計ペアとその合計を格納し、もう1つはすべての合計とそれに対応するペアを格納し
-
C++で二分探索木のすべての奇数ノードを印刷します
この問題では、二分探索木が与えられ、奇数の値を持つすべてのノードを出力する必要があります。 二分探索木 は、次のプロパティを持つ特殊なタイプのツリーです- 左側のサブツリーには、常にルートノードよりも小さい値があります。 右側のサブツリーには、常にルートノードよりも大きい値があります。 左右のサブツリーも、上記の2つのプロパティに従う必要があります。 問題を理解するために例を見てみましょう- 出力 − 1 3 9 この問題を解決するための簡単なアプローチは、ツリーをトラバースすることです。トラバーサルでは、ツリーの各ノードの値を確認します。ノードが奇
-
素因数のセットがC++のXの素因数のセットのサブセットであるすべての数値を出力します
この問題では、N個の数のセットとX個の数が与えられます。そして、素因数のセットがのセットのサブセットである配列からすべての数を出力する必要があります。 Xの素因数。 問題を理解するために例を見てみましょう Input: X= 30 , array = {2, 3, 6, 10, 12} Output : 2 3 6 この問題を解決するには、配列の要素をトラバースする必要があります。そして、この要素を gcdで分割します of(要素、x)。 gcdが1になるまで除算を繰り返し、残りの数を出力します。 例 #include <bits/stdc++.h> using namespa
-
C ++で、N未満のすべての数値を最大2桁の一意の数字で出力します
この問題では、整数Nが与えられ、N未満のすべての数値を、最大2つの一意の数字で出力しました。つまり、最大2つの異なる数字を使用して数値を作成できます。 。 問題を理解するために例を見てみましょう- Input: N = 17 Output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 この問題を解決するために、2桁しかないすべての数字を生成します。数値生成プロセスは0から始まり、数値がN以上になると終了します。2つの一意に選択された場合、 num * 10+iとnum*10 + jを使用して再帰的に数値を生成します。 。このプロセスで重複する番号が発生する
-
C++でリーフノードから距離kにあるすべてのノードを出力します
この問題では、二分木と数Kが与えられます。葉のノードからkの距離にある木のすべてのノードを印刷する必要があります。 二分木 は、各ノードに最大2つのノード(1/2 /なし)がある特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 この問題では、リーフノードからの距離はリーフノードよりも高いレベルのノードです。レベル4のリーフノードから距離2のノードがレベル2になるとします。 問題を理解するために例を見てみましょう K =2 出力 − 6 9. この問題を解決するために、ツリーをトラバースします。すべては、リーフノードに到達するレベルごとにすべて
-
C++の最小ヒープの値x未満のすべてのノードを出力します
この問題では、最小ヒープが与えられます および値x x未満のすべてのノードを印刷する必要があります。 最小ヒープ は、すべてのノードの値が子ノードのノード値よりも小さい特殊なタイプの二分木です。 問題を理解するために例を見てみましょう- X =45 出力- 2 4 7 10 17 22 33 34 ここで、この問題を解決するには、最小ヒープ全体のプレオーダートラバーサルを実行し、指定された値X未満の値のみを出力する必要があります。ノードの値がxより大きい場合、トラバースは行われません。そこの子ノードの値はxより大きくなります。最小ヒープのプレオーダートラバーサルを実行す
-
C++でKの葉を持つ二分木のすべてのノードを印刷します
この問題では、二分木と整数Kが与えられ、子サブツリーにKの葉を持つ二分木のすべてのノードを出力する必要があります。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 リーフノード 二分木のは、ツリーの最後にあるノードです。 問題を理解するために例を見てみましょう- K =2 出力- {S} この問題を解決するために、ツリーのトラバーサル(ポストオーダー)を実行します。ここで、葉の合計がKの場合、左側のサブツリーと右側のサブツリーがそれぞれ表示されます。現在のノードを出力します。 それ以外の場合は再帰的に呼び出し、サブツリーの葉がカ
-
C++のバイナリツリーで指定された2つのレベル間のすべてのノードを出力します
この問題では、バイナリツリーとツリー内の2つのレベル(上位と下位)が与えられ、ツリーの上位レベルと下位レベルの間のすべてのノードを印刷する必要があります。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう- アッパー−1 低い− 3 出力 − 6 3 9 7 4 8 10 この問題を解決するには、ツリーのノードを特定のレベルで印刷する必要があります。 上部からのループを使用して再帰関数を呼び出します。 下へ ツリーのレベル。 このアルゴリズムは単純ですが、n 2の次数がより複雑です。 。
-
C++で特定のノードから距離kにあるすべてのノードを出力します
この問題では、二分木、ターゲットノード、整数Kが与えられます。ターゲットノードから距離Kにあるツリーのすべてのノードを印刷する必要があります。 。 二分木 は、各ノードに最大2つのノード(1つまたは2つ/なし)を持つ特別なツリーです。 問題を理解するために例を見てみましょう K =2 ターゲットノード:9 出力 − 5 1 3. 説明 − 距離は、ノードの上位、下位、または同じレベルで取得できます。したがって、それに応じてノードを返します。 この問題を解決するには、ターゲットノードからK距離離れたノードのタイプを理解する必要があります。 上記の試験から、k個の離
-
すべてのn桁の厳密に増加する数値をC++で出力します
この問題では、数字Nが与えられ、すべてのn桁の数字を印刷する必要があります。 その桁はMSBからLSBに急激に増加しています。つまり、LSB(左)の数字は右の数字よりも小さいはずです。 問題を理解するために例を見てみましょう- 入力 − n =2 出力 − 01 02 03 04 05 06 07 08 09 12 13 14 15 16 17 18 19 23 24 25 26 27 28 29 34 35 36 37 38 39 45 46 47 48 49 56 57 58 59 67 68 69 78 79 89. 説明 −ご覧のとおり、左側の数字は右側の数字よりも小さい