データ構造への線形テーブルの順次格納 (2) - 挿入と削除


  前回は順序表の初期化と逆順出力について説明しましたが、今回は順序表の挿入と削除の操作について説明します。
  まず、シーケンシャルテーブルの挿入と削除ですが、この 2 つの操作にはデータの移動が必要だと誰もが考えるでしょう。では、データをどのように移動するのでしょうか。前から後ろまで?それとも後ろから前へ?それとも大丈夫ですか?簡単に考えてみましょう。

シーケンステーブルへの挿入

  挿入はデータ構造において非常に重要な操作の 1 つです。シーケンス テーブルの単純な構造から挿入の詳細をいくつか学ぶことができます。
  挿入はどのように行うべきですか?まず シーケンス テーブル を用意する必要があります。次に、 挿入する場所 < a i= 6>それはどこにあり、挿入された値は何ですか?これらは、 挿入に必要な 3 つのパラメータです.

  どのように挿入すればよいでしょうか? 最初のポイントは、挿入位置が正当である必要があるということです: 例を挙げてみましょう そうですね、それは映画館のようなものです。誰もが自分の座席番号を持っています。映画館が人でいっぱいで空席がないときは、ハッ!それで、あなたはこの映画を観に行って切符を買いたいのですが、車掌が切符を売ってくれると思いますか?もちろん、この時間では映画館はすでに満員で席がありません。 別の例として、あなたはまだ映画館にいるとします。映画館の座席は通常、1 から始まって後ろに向かって配置されています。車掌さん、私はそれが欲しいのですが、座席「0」、彼はあなたに切符をくれると思いますか?彼があなたにチケットを渡したくても、実際には席を持っていない場合でも~ これら 2 つの例は、挿入時に最初に注意する必要があることを示しています。挿入する位置は次のとおりです。この時点で、順序テーブルの長さは +1 であり、1 未満にすることはできません。

  考えてみると、シーケンス テーブルを定義したときは最大ストレージ長がありましたが、 データを挿入する前に、この時点のシーケンス テーブルはその長さに達していました。最大長 ストレージ長が長いのですが、この場合はどうすればよいでしょうか?          実際には非常に簡単で、realloc 関数を使って再度スペースを空け、データを挿入するだけです。
  位置が正当であり、最大ストレージ長に達したときにスペースを再度オープンしたので、次に最も重要なステップであるデータの挿入に進みます。 to 最後の要素が戻され、前のデータごとに同じ操作が順番に繰り返されます。 **要素番号付き add に移動するときは注意が必要です。 挿入したい要素 elme は add 番号に挿入されます。シーケンス テーブルは最初は 0 から始まるためです。挿入した要素 elme の実際の挿入位置は add-1 なので、これには特に注意する必要があります。 最後に、要素が正常に挿入されたため、全長を 1 増やす必要があります。

コードは以下のように表示されます:
  

ここに画像の説明を挿入します
実行結果は次のとおりです。
  

ここに画像の説明を挿入します

シーケンステーブルの削除(2つの方法)

  配列リストから要素を削除する主な方法は、位置に応じて削除するです。以下の 2 番目の方法は、私自身がテストするためのものです。書かれた。

要素の位置に応じて削除

  要素の位置による削除最初のポイントは、その位置が正当であるかどうかを判断することです。次に、別のポイントがあります。配列表が空かどうかを判定する。配列表が空の場合は削除できないためです。最初の点と交差しているような気がしますが、説明します。かなり重要だと思いますので、この部分は以下のコードには含まれていませんので、次回のブログで補足させていただきます。
  挿入と削除は前述の通り似ています。どちらもデータを移動しますが、移動方法が全く異なります。 挿入は から 末尾は に移動します削除は削除ポイントから末尾まで移動します。この点に注意してください。

コード (null テストなし):
  

ここに画像の説明を挿入します
実行結果は次のとおりです。
  

ここに画像の説明を挿入します

要素の値に応じて削除(指定された要素の値と同じ最初から最後までの値を削除)

  この部分は実際には要素の位置に応じて削除する変換です。もう少し内容が多くなります。最初にシーケンス テーブルをトラバースする必要があります。与えられた値と同じ値を見つけたら、ループから抜け出し、その値を書き留めます配列番号を入力し、要素の位置に従って処理を進め、同様の操作を削除します。

コードは以下のように表示されます:
  

ここに画像の説明を挿入します
操作結果:
  

ここに画像の説明を挿入します

主な機能は次のとおりです。
  

ここに画像の説明を挿入します
  これは私の勉強ノートの一部です。ゆっくり学んでゆっくり書き記せればと思います。最後に、ご覧いただきありがとうございます。間違っていたらご指摘をお待ちしております。

おすすめ

転載: blog.csdn.net/qq_45285808/article/details/109318173