データ構造 (DS) チュートリアルでは、データ構造の基本概念と高度な概念を説明します。データ構造チュートリアルは初心者と専門家向けに設計されています。
データ構造は、データを効率的に使用できるように保存および整理する方法です。
データ構造チュートリアルには、配列、ポインター、構造、リンク リスト、スタック、キュー、グラフ、検索、並べ替え、プログラムなどのデータ構造のすべてのトピックが含まれています。
データ構造とは何ですか?
データ構造名は、メモリ内でデータを編成すること自体を示します。データ構造の 1 つ、つまり C 言語の配列についてはすでに説明したように、メモリ内のデータを編成する方法は数多くあります。配列は、データが順番に、つまり次々に格納されるメモリ要素の集合です。つまり、配列は要素を連続的に格納していると言えます。このデータの編成は、一連のデータ構造を利用して行われます。メモリ内のデータを整理する他の方法もあります。さまざまなタイプのデータ構造を見てみましょう。
データ構造は、C、C++、Java などのプログラミング言語ではありません。これは、メモリ内のデータを構造化するために任意のプログラミング言語で使用できる一連のアルゴリズムです。
メモリ内のデータを構造化するために、「n」個のアルゴリズムが提案されており、これらのアルゴリズムはすべて抽象データ型として知られています。これらの抽象データ型は一連のルールです。
データ構造の種類
データ構造には次の 2 種類があります。
アトイC
- プリミティブなデータ構造
- 非プリミティブなデータ構造
プリミティブデータ構造
プリミティブ データ構造はプリミティブ データ型です。 int、char、float、double、およびポインタは、単一の値を保持できる基本的なデータ構造です。
非プリミティブ データ構造
非プリミティブ データ構造は、次の 2 つのタイプに分類されます。
- 線形データ構造
- 非線形データ構造
線形データ構造
シーケンシャルな方法でのデータの配置は、線形データ構造として知られています。この目的に使用されるデータ構造は、配列、リンク リスト、スタック、キューです。これらのデータ構造では、1 つの要素が他の要素とのみ線形で接続されています。
1 つの要素が「n」個の要素に接続されている場合、非線形データ構造として知られています。最良の例はツリーとグラフです。この場合、要素はランダムに配置されます。
mysql 表示ユーザー
上記のデータ構造については、次のトピックで簡単に説明します。ここで、これらのデータ構造に対して実行できる一般的な操作を見ていきます。
データ構造は次のように分類することもできます。
主な業務
データ構造に対して実行できる主な操作または一般的な操作は次のとおりです。
どのデータ構造ですか?
データ構造は、データを効率的に使用できるように編成する方法です。ここでは、空間的にも時間的にも効率的に言葉を使いました。たとえば、スタックは実装に配列またはリンク リスト データ構造を使用する ADT (抽象データ型) です。したがって、特定の ADT を実装するには何らかのデータ構造が必要であると結論付けます。
ADT は次のように伝えます。 何 実行されるべきであり、データ構造がそれを伝える どうやって それは行われることです。言い換えれば、ADT が設計図を提供し、データ構造が実装部分を提供すると言えます。ここで、特定の ADT に使用されるデータ構造をどのようにして知ることができるのかという疑問が生じます。
特定の ADT ではさまざまなデータ構造を実装できますが、さまざまな実装は時間と空間に関して比較されます。たとえば、スタック ADT は配列とリンク リストの両方で実装できます。アレイが時間効率を提供し、リンク リストがスペース効率を提供すると仮定すると、現在のユーザーの要件に最も適したものが選択されます。
データ構造の利点
データ構造の利点は次のとおりです。
データ構造索引
DS の基本
- DSの紹介
- Ds 漸近分析
- DSの構造
DSアレイ
- 2D 配列
DS リンクリスト
- リンクされたリスト
- 冒頭に挿入
- 最後に挿入
- 指定したノードの後に挿入
- 先頭の削除
- 最後に削除
- 指定ノード以降の削除
- トラバース中
- 検索中
- 二重リンクリスト
- 冒頭に挿入
- 最後に挿入
- 指定したノードの後に挿入
- 先頭の削除
- 最後に削除
- 与えられたデータを持つノードの削除
- トラバース中
- 検索中
- 循環リンクリスト
- 冒頭に挿入
- 最後に挿入
- 先頭の削除
- 最後に削除
- トラバース中
- 検索中
- 循環二重リスト
- 冒頭に挿入
- 最後に挿入
- 先頭の削除
- 最後に削除
DSスタック
- 配列の実装
- リンクリストの実装
DSテール
- 配列の実装
- リンクリストの実装
- 循環キュー
DS ツリー
二分探索木と二分木
- 木
- 二分木
- 事前注文トラバーサル
- インオーダートラバーサル
- ポストオーダートラバーサル
- 二分探索木
- AVL ツリー
- AVL ツリーへの挿入
- LL回転
- LR回転
- RL回転
- RR回転
- AVL ツリーへの挿入
- Bツリー
- B+ ツリー
- レッドブラックツリー
DSグラフ
- DSグラフ
- グラフの実装
- BFS アルゴリズム
- DFS アルゴリズム
- スパニングツリー
DS の検索
DSソーティング
- バブルソート
- バケットソート
- コームソート
- カウンティングソート
- ヒープソート
- 挿入ソート
- マージソート
- クイックソート
- ソート基数
- 選択範囲の並べ替え
- シェルソート
- ビットニックソート
- カクテルソート
- サイクルソート
- ティム・ソート
面接の質問
メガバイトとギガバイトの違いは何ですか
- 単一リンクリストを作成および表示するプログラム
- n個のノードの単一リンクリストを作成し、ノードの数を数えるプログラム
- n個のノードの単一リンクリストを作成し、それを逆順に表示するプログラム
- 単一リンクリストの先頭から新しいノードを削除するプログラム
- 単一リンクリストの途中から新しいノードを削除するプログラム
- 単一リンクリストの末尾からノードを削除するプログラム
- 単一リンクリストが回文であるかどうかを判断するプログラム
- 単一リンクリストから最大値ノードと最小値ノードを見つけるプログラム
- 単一リンクリストの中央に新しいノードを挿入するプログラム
- 単一リンクリストの先頭に新しいノードを挿入するプログラム
- 単一リンクリストの最後に新しいノードを挿入するプログラム
- 単一リンクリストから重複要素を削除するプログラム
- 単一リンクリスト内の要素を検索するプログラム
- 単一リンクリストの要素をソートするプログラム
- データを交換せずに単一リンクリスト内のノードを交換するプログラム
- 単一リンクリストの最後の要素を最初の要素から交換するプログラム
二重リンクリストプログラム
- 指定された二分木を二重リンクリストに変換するプログラム
- 三分木から二重リンクリストを作成するプログラム
- N個のノードの二重リンクリストを作成し、ノード数を数えるプログラム
- N個のノードの二重リンクリストを作成し、それを逆順に表示するプログラム
- 二重リンクリストを作成・表示するプログラム
- 二重リンクリストの先頭から新しいノードを削除するプログラム
- 二重リンクリストの末尾から新しいノードを削除するプログラム
- 二重リンクリストの途中から新しいノードを削除するプログラム
- 二重リンクリストから最大値ノードと最小値ノードを見つけるプログラム
- 二重リンクリストの先頭に新しいノードを挿入するプログラム
- 二重リンクリストの最後に新しいノードを挿入するプログラム
- 二重リンクリストの途中に新しいノードを挿入するプログラム
- 二重リンクリストから重複要素を削除するプログラム
- 二重リンクリストをN個のノードごとに回転させるプログラム
- 二重リンクリスト内の要素を検索するプログラム
- 二重リンクリストの要素をソートするプログラム
循環リンクリストプログラム
- N個のノードの循環リンクリストを作成し、ノード数を数えるプログラム
- N個のノードの循環リンクリストを作成し、それを逆順に表示するプログラム
- 循環リンクリストを作成および表示するプログラム
- 循環リンクリストの先頭から新しいノードを削除するプログラム
- 循環リンクリストの末尾から新しいノードを削除するプログラム
- 循環リンクリストの途中から新しいノードを削除するプログラム
- 循環リンクリストから最大値と最小値のノードを見つけるプログラム
- 循環リンクリストの先頭に新しいノードを挿入するプログラム
- 循環リンクリストの最後に新しいノードを挿入するプログラム
- 循環リンクリストの途中に新しいノードを挿入するプログラム
- 循環リンクリストから重複要素を削除するプログラム
- 循環リンクリスト内の要素を検索するプログラム
- 循環リンクリストの要素をソートするプログラム
ツリープログラム
- 二分木の奇数レベルと偶数レベルのノードの合計の差を計算するプログラム
- 二分探索木を構築し、削除と順序走査を実行するプログラム
- 二分木を二分探索木に変換するプログラム
- すべての葉が同じレベルにあるかどうかを判断するプログラム
- 2 つの木が同一であるかどうかを判断するプログラム
- 二分木の最大幅を求めるプログラム
- 二分木で最大の要素を見つけるプログラム
- 木の最大の深さまたは高さを見つけるプログラム
- 二分木で最大距離にあるノードを見つけるプログラム
- 二分木の最小要素を見つけるプログラム
- 二分木のすべてのノードの合計を求めるプログラム
- N 個のキーで可能な二分探索木の総数を求めるプログラム
- リンクリストを使用して二分木を実装するプログラム
- 二分木内のノードを検索するプログラム
前提条件
データ構造を学習する前に、C の基本的な知識が必要です。
観客
データ構造チュートリアルは、初心者と専門家を支援するように設計されています。
問題
このデータ構造チュートリアルでは問題が見つからないことを保証します。ただし、間違い等がございましたらお問い合わせフォームよりご連絡ください。