章データ構造 - リニアテーブルまとめたもので

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/qq_43627108/article/details/102769425

表1リニア(リスト):ゼロ以上のデータ要素の順序付けられた配列、及び

同様のライン~~チームで、限り誰もがその上の選手の前で彼を覚えておくと、

(アレイがメモリに連続しているので、各要素の前面と背面との間に関係があるので、順次記憶構造は、即ち、テーブルの線形アレイです)

リニアテーブルの場合2であり、n = 0の空のテーブル(チームは解散と空のテーブルでも、理にかなってますが、チーム名がまだ存在するだけでなく、人と人の次のコレクションに)

表4.リニア共通の操作:

InitList(* L):初期設定では、空のリストLの線形を作成します

ListEmpty(L):表ブランキング線形

ClearList(* L):表は、リニアを空に

GetElem(L、I、E *):線形リストL I番目の要素を取得し、ポインタEに保存されています

LocateElem(L、E):ルックアップ操作

ListInsert(* L、I、E):挿入〜

LISTLENGTH(L):要素の数を取得します。

順次記憶構造の線状

1.線順次記憶テーブルの構造と実際に、我々は、C言語の配列にさらされているデータ構造で同じ表現同じではなく、

2号容易順次記憶構造を位置決め要素の数は、時間計算量はO(1)であるが、欠失および挿入面倒

、最後の要素を削除し、時間計算量はO(1)、最初の要素を削除し、時間計算量はO(N)、平均はO(N / 2)であります

しかし、時間複雑さの定義に従って、時間複雑性は必要があり、またO(N)

3.思考の要素を挿入

用(K = L->長-1; K> = I; K-)

L->データ[K + 1] = L->データ[K]。

挿入素子AのI番目の要素では、私の要素が後ろに移動します

(シフト後の要素のk個に置き換え、元の位置の数K + 1です)

4.操作を削除します。

(また、ループに使用される)代わりにK + 1と素子のK個の値のみ

リニアアレイの長さとテーブルが同じでない、配列の長さの定義は、線状の要素の実際の数よりも大きいことを5.注

線形形式のストレージ構造

単鎖を含む線状、二重鎖、円形のリンクリスト、等である1ストレージ構造チェーン

リニアテーブルの場合、最も調べるとチェーンのストレージ構造ということで、チェーンのストレージ構造は、最も重要な単一のリストです

2.保存構造最初の要素から求めることができるように、マルチロケーションの各要素は、次の要素の位置を指すポインタを格納します

あなたが通過できるように、第2要素は、第二は......第三に見つけることができます

3.記憶構造は、各要素は、ノード、データ・フィールド、ポインタフィールドを含むノードと呼ばれます。

N連結リストへのノード、すなわち、線形テーブル(A1、A2、A3、... AN)〜鎖ストレージ構造

リンクされたリスト内の各ノードが唯一のポインタ・フィールドを含んでいるので、そう呼ばれる単鎖

リニアフォーム4.、それは頭と尾を持っている必要があり、リストが例外ではありません、
我々は最初のノードの位置がリンクリストの先頭のポインタと呼ばれて保存、最後のノードNULLポインタがNULLです

第1のノードとヘッドポインタとの間の類似点と相違点がある
:ヘッド・ポインタ
(1)ノードのリストは、ヘッドを持っている場合、ヘッドノードのポインタを指している、最初のノードへのポインタがリストの先頭ポインタを指し

一般に、ヘッドポインタリスト名としても知られている(2)識別の目的のためにヘッド・ポインタを有する、(変数名ポインタ)

(3)リストが空であるかどうか、ヘッドポインタがヌルでない
最初のノードを:
(1)最初のノードが、均一で第1のノード要素に、設定する操作が簡単になる前にどのデータ・フィールド一般的な意味のない(リストの長さを格納するために使用されてもよいです)

(2)第一のノードと、前の最初のノードへの挿入素子と第1のノードのノードは、統合上の他のノードの動作に動作を削除します

(3)リストの最初のノードは、必ずしも必須の要素ではない
6.(リストに要素を照会)単独でリンクされたリストを取得します。

アルゴリズムは、アイデア、i番目のデータのリストを取得するには:

- 最初の初期化jから最初のノードでのステートメントリストノードp、

- ポインタPの後方への移動は、次のノードを指すように続けるようにJ <iは、次いで、リンクされたリストをトラバースした場合、J + 1

- リストは、pの最後に空の場合、i番目の要素が存在しない、または成功、バックジャンクションのデータ点pを見つけるために、

注意:

- そのため、アルゴリズムの時間複雑さのi = 1のとき、位置Iに依存して、横断する必要がなく、私はときにN-1 = n回缶トラバースされます。こうしてOの最悪の場合の時間複雑度(N)

- テーブルに定義されていない単一鎖長の構造に起因し、サイクルの回数を知ることができないので、制御ループのために使用すると便利ではありません

- 核となるアイデアは、それはまた、一般的な手法で多くのアルゴリズムで、「仕事の後にポインタが移動する」と呼ばれています。

データ記憶およびポインタの各ノードは、次のノードへのポインタであるため、すなわちノード要素タイプを向いているので、単一のリスト、戻り値はタイプノードであり、

おすすめ

転載: blog.csdn.net/qq_43627108/article/details/102769425
おすすめ