Looking for data-structures Answers? Try Ask4KnowledgeBase
Looking for data-structures Keywords? Try Ask4Keywords

data-structuresデータ構造の使い方


備考

このセクションでは、データ構造の概要と、開発者がそれを使用する理由について概要を説明します。

また、データ構造内の大きなテーマについて言及し、関連するトピックにリンクする必要があります。データ構造のドキュメンテーションは新しいので、それらの関連トピックの初期バージョンを作成する必要があります。

配列:単純なデータ構造

配列データ構造は、類似のオブジェクト(またはデータ値)を連続したメモリブロックに格納するために使用されます。配列データ構造には固定サイズがあり、そこに格納できるデータ値の数が決まります。


配列:C ++の方法

C ++プログラミング言語では、以下のように静的配列を宣言できます

int arrayName[100];
 

ここでは、arrayNameという名前の配列を宣言しました。この配列は、すべてが同じ型、つまり整数である100個までの値を格納できます。

ここでは、このデータ構造の長所と短所について説明します。

  1. Constant TimeでArrayに格納されたデータ値にアクセスすることができます。つまり、時間の複雑さはO(1)です。したがって、i番目の位置に格納されたデータ値にアクセスしたい場合は、開始位置から開始してi番目の位置に移動する必要はありませんが、i番目の位置に直接ジャンプして計算時間を節約できます。
  2. 配列の途中に要素を挿入することは効率的な作業ではありません。配列の新しい要素をi番目の位置に追加する場合、最初にすべての要素を(i番目とi + 1番目の)位置に移動して新しい要素のスペースを作成する必要があります。例: 1 4 2 0 は4要素の配列です.3番目を2番目の位置に挿入したい場合は、3,2番目の位置をさらに移動して3のスペースを作成する必要があります。
  1 3 4 2 0
 
  1. 要素の挿入と同様に、配列内のi番目の位置からの要素の削除も効率的ではありません。なぜなら、削除された要素よりも先にすべての要素を1ブロック分移動させる必要があります。素子。

これらは配列の3つの単純な特性です。ここでは、配列は効率的なデータ構造ではないと信じているかもしれませんが、実際には、配列の利点はその不利点を上回る可能性があります。これは主に目的の種類に依存しますが、アクセスしたい要素を頻繁に挿入または削除したくない可能性があります。その場合、配列は完全に完璧なデータ構造です。

このデータ構造を導入する唯一の目的は、長所と短所に基づいてデータ構造を選択しないようにすることですが、問題を考慮してデータ構造の重要性を常に分析してください。たとえば、データ値を挿入または削除する場合に比べてデータ値にアクセスするのに多くの時間を費やすことになる場合は、不利益よりも有利になるように重みを増やす必要があります。

データ構造の紹介

データ構造は、情報を編成して格納する方法です。

「こんにちは、世界!文字列は、整理してバイトアドレス可能なメモリに格納する必要がある情報です。

各ASCII文字には7ビットの記憶容量が必要です。ほとんどのシステムでは、各文字ごとに8ビット(1バイト)が予約されているため、「Hello、World!連続して、個々のバイトサイズのメモリ単位で1つずつ格納されます。

複数のメモリアドレスにまたがっていても、文字列への参照は1つだけ必要なので、文字列 'H'の最初の文字のアドレスを使用します。他のすべての文字は、 'H' +ゼロインデックス文字を使用してその文字のインデックスのアドレスでアクセスできます。

文字列「こんにちは、世界!」を印刷したいプリント機能に供給されるメモリ内のアドレスを知っていますが、連続したメモリ位置の印刷を中止するためにプリント機能はどのように知っていますか? 1つの一般的なアプローチは、文字列にヌル文字「\ 0」を追加することです。 print関数がヌル文字に遭遇すると、文字列の最後に達していることが分かります。

私たちは文字列、つまりデータ構造を整理して格納する方法を定義しました!この非常にシンプルなデータ構造は、ヌルで終了する文字配列です。これは、文字列を整理して格納する方法の1つです。