データ構造インタビューの質問と回答[初心者および経験者向け]
公開: 2020-11-23データ構造とアルゴリズムの面接の質問を書き留める目的は、主題のデータ構造とアルゴリズムの面接で一般的に尋ねられる質問の性質を理解することです。 優れたインタビュアーは、事前に決められた質問を思いつきません。 通常、質問は主題の基本的な概念から始まり、回答とさらなる議論に応じて続きます。 専門知識を身に付けて夢のデータサイエンスの仕事に就きたい場合は、データサイエンス認定資格を確認してください。
目次
データ構造インタビューの質問と回答
1.データ構造とは何ですか?
データ構造は、データを体系的かつ構造的に定義、保存、および取得する方法論と考えることができます。 データ構造には、さまざまな種類のデータ項目を含めることができます。
2.利用可能なさまざまなデータ構造は何ですか?
データ構造の可用性は、プログラミング言語によって異なります。 一般的に使用されるデータ構造には、ツリー、グラフ、キュー、リスト、配列、およびスタックがあります。
また読む:データ構造での並べ替え
3.アルゴリズムとはどういう意味ですか?
アルゴリズムは、固定された順序で実行すると目的の出力が得られる命令のクラスターを定義するための段階的な手順と考えることができます。
4.アルゴリズム分析の必要性は何ですか?
与えられた問題は多くの方法で解決することができます。 したがって、いくつかの解法アルゴリズムを導出することが可能です。 アルゴリズムを分析する目的は、最適なアルゴリズムを見つけて実装することです。
5.アルゴリズム分析の基準
アルゴリズムは、空間と時間の2つの要素に基づいて分析されます。 これは、アルゴリズムの実行時間と余分なスペースが必要であることを意味します。
6.アルゴリズムの漸近解析とはどういう意味ですか?
どのアルゴリズムでも、数学的バインディングに基づく実行時間には3つの異なるレベルがあります。
- ベストケースの表現は、記号Ω(n)で行われます。
- 最悪の場合の表現は、記号Ο(n)によって行われます。
- 平均的なケースの表現は、記号Θ(n)によって行われます。
7.線形データ構造とはどういう意味ですか?
データ項目を順番に並べると、線形データ構造と呼ばれます。 データ項目は順番に保存およびアクセスされます。 線形データ構造の典型的な例は、リストと配列です。
8.データ構造に対して実行される一般的な操作は何ですか?
データ構造に対して実行できる操作は次のとおりです。
挿入–データ項目の追加
削除–データ項目の削除
トラバーサル–データ項目へのアクセスと印刷
検索–データ項目を検索します
並べ替え–事前定義された順序で配置されたデータ項目
必読:データ構造プロジェクトのアイデアとトピック
9.アルゴリズムを開発するためのさまざまなアプローチは何ですか?
アルゴリズムを開発するために一般的に使用されるアプローチは3つあります。
貪欲なアプローチ:解決策を見つけるための次善の選択肢を選択します。
分割統治法:問題は可能な限り最小限のサブ問題に分割され、各サブ問題は個別に解決されます。
動的計画法:問題は最小限のサブ問題に分割され、それらは一緒に解決されます。 C
9.欲張りアルゴリズムの例:
- ・Djikstra、Kruskal、およびPrimの最小スパニングツリーアルゴリズム
- ・グラフ–地図の彩色
- 頂点被覆の問題
- ・ジョブスケジューリングの問題
- ・ナップザックの問題
- ・巡回セールスマン問題
10.分割統治アルゴリズムの例
- スタッセンの行列乗算
- クイックソート
- マージソート
- 最も近いペア
- 二分探索
11.動的計画法アルゴリズムの例:
- ハノイの塔
- ダイクストラによる最短経路
- プロジェクトのスケジュール
- ナップサック問題
- フィボナッチ数列
- Floyd-Marshallによるすべてのペアの最短経路
12.リンクリストとは何ですか?

リンクリストは、リンク、つまり参照またはポインタと相互接続されているデータ項目のリストと考えることができます。 メモリー位置への直接アクセスは、現代の高級言語では許可されておらず、それらではサポートされていません。 それらが利用可能な場合、それは組み込み関数の形式になっています。
13.スタックとは何ですか?
これは、後入れ先出し形式で値を格納および取得するために使用される一種の抽象データ型です。
14.なぜスタックを使用するのですか?
Stacksは、O(n)時間のみを消費するデータ項目の追加と取得のLIFOメソッドを使用します。 到着と逆の順序でデータ項目にアクセスする必要がある場合は、スタックを使用できます。 スタックは、式の解析、再帰関数呼び出し、およびグラフの深さ優先走査でより一般的に使用されます。
スタックで実行できる一般的な操作:
push():スタックトップにアイテムを追加する
pop():スタックトップからアイテムを削除します
peek():トップアイテムの値を削除せずに表示します
is empty():空のスタックがあるかどうかを確認します
is full():フルスタックがあるかどうかを確認します
15.データ構造のキューとはどういう意味ですか?
スタックと同様に、キューも抽象的なデータ構造です。 ただし、キューは両端で開いています。 これは、一方の端がデータの挿入(エンキュー)に使用され、もう一方の端がアイテムの削除(デキュー)に使用されることを意味します。 キューは先入れ先出し方式に従います。つまり、最初に格納されたデータ項目が最初にアクセスされます。
16.キューの用途は何ですか?
キューは先入れ先出し方式に従うため、このデータ構造を使用して、データアイテムが到着した正確な順序でデータアイテムを処理できます。 キューは、さまざまなプロセスのオペレーティングシステムで広く使用されています。 グラフと優先度付きキューの幅優先探索は、キューの例です。
17.キューで実行できる操作:
enqueue():キューの最後にアイテムを追加します
dequeue():キューのフロントエンドからアイテムを削除します
peek():フロントアイテムの値を削除せずに表示します
is empty():スタックが空かどうかをチェックします
is full():スタックがいっぱいかどうかを確認します
18.二分探索とは何ですか?
二分探索は、ソートされたリストまたは配列に適用される検索手法です。 検索では、リスト全体を2つの部分に分割できる中央のユニットが選択されます。 まず、真ん中のユニットが検索アイテムと比較されます。
一致する場合、アルゴリズムは正常に終了します。 それ以外の場合は、検索アイテムが中央のユニットよりも小さいか大きいかを確認しようとします。 検索項目が小さい場合は、中央が配列またはリストの最後の項目になります。 検索項目が大きい場合は、真ん中がリストの一番上の項目になります。
最終的な考え
データ構造インタビューの質問と回答のガイドがお役に立てば幸いです。 ガイドは定期的に更新され、最新の状態に保たれます。
データサイエンスについて知りたい場合は、IIIT-B&upGradのデータサイエンスのエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。1業界のメンターとの1対1、400時間以上の学習、トップ企業との仕事の支援。
抽象データ構造とはどういう意味ですか?
抽象データ構造または抽象データ型(ADT)は、格納されているデータの種類、データでサポートされている操作、および操作パラメーターの種類を示すデータ構造の数学モデルです。 ADTの助けを借りて、ユーザーは各操作が何をするかを知ることができます。 しかし、それは操作の動作を見つけるのに役立ちません。 さまざまなデータ構造を使用して、抽象データ構造を実行できます。 プログラムにADTを指定することは、プログラムで使用するデータ構造を決定するための優れた最初のステップです。
さまざまな種類のデータ構造は何ですか?
データ構造は、線形データ構造と非線形データ構造の2つのタイプに分類されます。 線形データ構造の要素は、次々に順番に配置されます。 ピースは特定の順序で編成されているため、実行は簡単です。 ただし、プログラムの複雑さが増すにつれて、線形データ構造は運用上の問題のために理想的なソリューションではない場合があります。 非線形データ構造には、通常の順序の要素はありません。 代わりに、それらは階層順に編成され、1つの要素が1つ以上の他の要素にリンクされています。
データ構造のどの機能が今後も関連性を維持しますか?
データ構造はコンピュータサイエンスの中心であるため、データ構造のほとんどすべての機能は今後も関連性を維持する可能性があります。 基本的な配列から二分探索木まで、そしてそれを超えて、それらは日常生活に本質的に根付いているアルゴリズムを開発する上で重要な役割を果たします。 データ構造のおかげで、今日のテクノロジーの世界は迅速、効率的、そして正確です。 データ構造を変更するために使用される戦略は、より区別がつかなくなります。