-
区間木を実装するC++プログラム
区間木は、区間を保持するための順序付けられたツリーデータ構造です。具体的には、任意の間隔またはポイントと重複するすべての間隔を効率的に見つけることができます。これは、区間木を実装するためのC++プログラムです。 アルゴリズム Begin function insert() is used to insert new nodes into the tree: If Tree is empty, new node becomes root. Get low val
-
ランダム化された二分探索木を実装するためのC++プログラム
二分探索木は、すべてのノードが次のいくつかのプロパティを持つソートされた二分木です- ノードの右側のサブツリーには、親ノードのキーよりも大きいキーがあります。 ノードの左側のサブツリーには、親ノードのキー以下のキーがあります。 各ノードには2つ以上の子を含めることはできません。 これは、ランダム化された二分探索木を実装するためのC++プログラムです。 アルゴリズム Begin class BST to declare following functions: search() = To search an item in
-
自己平衡二分探索木を実装するためのC++プログラム
AVLツリーは自己平衡二分探索木であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません。 これは、自己平衡二分探索木を実装するためのC++プログラムです。 Begin class avl_tree to declare following functions: balance() = Balance the tree by getting balance factor. Put the difference in bal_factor. If bal_factor > 1 then balance the left subtree. &
-
スプレーツリーを実装するC++プログラム
これは、スプレーツリーを実装するためのC++プログラムです。 クラスの説明: Begin class SplayTree has the functions: Create a function Splay() to implement top-down splay tree. Here head.rch points to the Left tree and head.lch points to the right tree. Create
-
C ++言語のファイル処理でseekg()を使用して位置を設定します
seekg()は、ファイル内の任意の位置を検索できるようにするiostreamライブラリの関数です。これは主に、C++ファイル処理で特定のファイルの入力ストリームから抽出される次の文字の位置を設定するために使用されます。 構文 istream&seekg(streamoff offset, ios_base::seekdir dir); istream&seekg(streampos position); Where, position: It is the new position in the stream buffer. offset: It is an integer
-
C++での例外処理の基本
C ++では、例外処理はランタイムエラーを処理するプロセスです。例外は、C++で実行時にスローされるイベントです。すべての例外は、std::exceptionクラスから派生します。処理可能なランタイムエラーです。例外を処理しない場合は、例外メッセージを出力してプログラムを終了します。 例外は、C ++標準では、プログラム内で使用できるクラスとして定義されています。親子クラス階層の配置を以下に示します。 C++の一般的な例外クラスは次のとおりです。 例外 説明 std ::exception これは、すべての標準C++例外の例外および親クラスです。 std ::
-
C++とJavaでの例外処理
C++とJavaの例外処理には重要な違いがあります Javaでの例外処理 C++での例外処理 オブジェクトとしてスローできるのはスロー可能なオブジェクトのみです。 すべてのタイプを例外としてスローできます Javaでは、finallyは、クリーンアップのためにtrycatchブロックの後に実行されるブロックです。 C ++には、finallyブロックは存在しません 新しいキーワードthrowsを使用して、関数によってスローされた例外を一覧表示します。 Throwキーワードは、関数によってスローされた例外を一覧表示するために使用されます。 チェックされた例外とチェ
-
セットを使用してダイクストラのアルゴリズムを実装するC++プログラム
これは、Setを使用してダイクストラのアルゴリズムを実装するためのC++プログラムです。ここでは2つのセットが必要です。ルートとして指定されたソースノードを使用して最短パスツリーを生成します。 1つのセットには最短経路ツリーに含まれる頂点が含まれ、もう1つのセットにはまだ最短経路ツリーに含まれていない頂点が含まれます。すべてのステップで、他のセット(まだ含まれていないセット)にあり、ソースからの距離が最小である頂点を見つけます。 アルゴリズム: Begin function dijkstra() to find minimum distance: &nb
-
貪欲なカラーリングを実行するC++プログラム
これが貪欲なカラーリングを実行するC++プログラムです アルゴリズム: Begin Take the number of vertices and edges as input. Create function greedyColoring() to assign color to vertices: A) Assign the first color to first vertex. B) Initialize the remaining vertices. C)
-
エッジのばらばらのパスの最大数を見つけるためのC++プログラム
これは、エッジの互いに素なパスの最大数を見つけるためのC ++プログラムです。これは、2つの頂点間の最短のサブセットパスまたは最大フローを意味します。 アルゴリズム: Begin function bfs() returns true if there is path from source s to sink t in the residual graph which indicates additional possible flow in the graph. End Begin fu
-
BSTで操作を実行するC++プログラム
二分探索木は、すべてのノードが次のプロパティを持つソートされた二分木です- ノードの右側のサブツリーには、その親ノードのキーよりも大きいキーがあります。 ノードの左側のサブツリーには、親ノードのキーよりも小さいキーがあります。 すべての重要な値は異なります。 各ノードに3つ以上の子を含めることはできません。 クラスの説明: Begin class BST to declare following functions: search() = To search an item in BST. &nbs
-
Network_Flow問題を実装するためのC++プログラム
これは、FordFulkersonアルゴリズムを使用してNetwork_Flow問題を実装するためのC++プログラムです。 アルゴリズム: Begin function bfs() returns true if there is path from source s to sink t in the residual graph which indicates additional possible flow in the graph. End Begin function fordfulkarson() retu
-
エドモンズ・カープアルゴリズムを実装するためのC++プログラム
これは、ソース頂点とシンク頂点の間の最大フローを計算するためのエドモンズカープアルゴリズムを実装するC++プログラムです。 アルゴリズム: Begin function edmondsKarp() : initiate flow as 0. If there is an augmenting path from source to sink, add the path to flow. Return flow. End サンプルコード #inc
-
1次元オブジェクトとMビンのFirstFit減少を実装するC++プログラム
これは、1-DオブジェクトとMビンのFirstFitDecreasingを実装するためのC++プログラムです 必要な機能と擬似コード: Begin function binPack() returns number of bins required. Initialize binC = 0 Initialize an array to store binVal. Place items one by one. function sort() to perform b
-
ヒストグラムで最大の長方形領域を見つけるためのC++プログラム
これは、ヒストグラムで最大の長方形領域を見つけるためのC++プログラムです 関数getArea()のアルゴリズム: Begin Create an empty stack. Initialize the largest_area. Do a while loop start from first bar for every bar hist[i], where i = 0 to less than n: If stack is empty or hi
-
C++でstd::stringをLPCSTRに変換する方法は?
このセクションでは、C ++文字列(std ::string)をLPCSTRに変換する方法を説明します。 LPCSTRは、(一定のSTRingへのロングポインター)です。基本的にはCのような文字列です。したがって、文字列を文字配列に変換することで、LPCSTRを取得できます。このLPCSTRはMicrosoftが定義したものです。したがって、それらを使用するには、Windows.hヘッダーファイルをプログラムにインクルードする必要があります。 std ::stringをstringのようにCに変換するには、c_str()という関数を使用できます。 サンプルコード #include<io
-
C++でstd::stringをLPCWSTRに変換する方法は?
このセクションでは、C ++ワイド文字列(std ::wstring)をLPCWSTRに変換する方法を説明します。 LPCWSTRは、(一定のワイドSTRingへのロングポインター)です。基本的にはワイド文字の文字列です。したがって、ワイド文字列をワイド文字配列に変換することで、LPCWSTRを取得できます。このLPCWSTRは、Microsoftが定義したものです。したがって、それらを使用するには、Windows.hヘッダーファイルをプログラムにインクルードする必要があります。 std ::wstringをワイド文字配列タイプの文字列に変換するには、c_str()という関数を使用して、Cの
-
string.hのない文字列の長さを見つけてCでループする方法は?
このセクションでは、Cで文字列ヘッダーファイルとループを使用せずに文字列の長さを見つける方法を説明します。文字列の長さを見つける問題は、string.hがなくても非常に簡単に解決できます。再帰関数を使用してそれを行うことができます。 ただし、この例では、再帰を使用していません。そのために別のトリックを使用しています。長さを取得するためにprintf()関数を使用しています。 printf()関数は、印刷した文字数を返します。 printf()関数を使用してその文字列のみを出力すると、その長さを簡単に取得できます。 サンプルコード #include<stdio.h> main()
-
Cでの文字列化およびトークン貼り付け演算子
このセクションでは、CでのStringize演算子とTokenPasting演算子について説明します。Stringize演算子はプリプロセッサ演算子です。トークンを文字列に変換するコマンドをコンパイラに送信します。この演算子はマクロ定義で使用します。 stringize演算子を使用すると、引用符を使用せずに一部のテキストを文字列に変換できます。 サンプルコード #include<stdio.h> #define STR_PRINT(x) #x main() { printf(STR_PRINT(This is a string without doubl
-
10進数から16進数、およびその逆のC++のStringStream
このセクションでは、C ++でDecimalを16進文字列に変換する方法、および16進文字列からDecimal文字列に変換する方法を説明します。この変換では、C++の文字列ストリーム機能を使用しています。 文字列ストリームは、文字列のフォーマット、解析、数値への変換などに使用されます。16進数はIOマニピュレータです。パラメータとしてIOストリームへの参照を取り、それを操作した後に文字列への参照を返します。 次の例では、10進数または16進数を変換する方法を示します。 サンプルコード #include<iostream> #include<sstream> usin