プロジェクト GitHub:
線形テーブルの定義
- Linear table(リニア・テーブル): 0個以上のデータ要素からなる有限のシーケンス。
- リニアテーブルの要素数nは、リニアテーブルの長さとして定義され、n = 0のとき、それは空のテーブルと呼ばれます。
- 論理的な関係を1対1で保存します。
リニアテーブルの特徴
- first "というユニークなデータ要素があります;
- last "というユニークなデータ要素があります;
- 最初のものを除いて、構造体内の各データ要素は1つの前任者しか持ちません;
- 構造体の各データ要素には、最後のものを除いて後継者が1つしかありません。
リニア・テーブルの抽象データ型定義
ADT Linear Table Data : データ・オブジェクトの集まり。要素と要素は同じ型を持ち、隣接する要素には前任者と後任者の関係があります。操作:
- InitList(*L): 空の線形テーブル L を構築します。
- DestroyList(*L):線形テーブルがあればそれを破棄します。
- ClearList(*L):線形テーブルをクリアします。
- ListEmpty(L):線形テーブルが空の場合はtrueを返し、そうでない場合はfalseを返します。
- GetElem(L, i, &e): eを持つ線形テーブルのi番目の要素を返します。
- LocateElem(L, e):Lの中でeに等しい最初の要素の序数を返します。存在しない場合は0を返します。
- ListDelet(int i): i 番目の要素を削除し、その値を返します。
- PriorElem(const T& item): item の前任者と等しい最初の要素を返します。
- NextElem(const T& item): item に等しい最初の要素の後継を返します。
エンドアドット
C++言語の説明と実装
線形テーブルの逐次記憶構造の定義
- 線形テーブルの抽象化とカプセル化
/*
* Sequential List - 線形テーブルの逐次記憶構造
* 特徴:論理的な隣人と物理的な隣人。
*/
template<class T>
class s_List
{
public:
s_List(int listCapacity = 10); //コンストラクタは、デフォルトの容量10でリニアテーブルを初期化する。
void ClearList(); //空のリニアテーブル
bool ListEmpty() const; //線形テーブルが空であるかどうかを判断する
bool ListInsert(int i, const T& item); //iの位置に要素の項目を挿入する
int ListLength(); //線形テーブルの要素数を取得する
int LocateElem(const T& item); //itemに等しい最初の要素の番号、またはそれが存在しない場合は0を返す。
T GetElem(int i); //i番目の要素の値を取得する
T ListDelet(int i); //i番目の要素を削除し、その値を返す
T PriorElem(const T& item); //アイテムに等しい最初の要素の前任者を返す
T NextElem(const T& item); //itemに等しい最初の要素の後継を返す
~s_List(); //リニアテーブルを破棄する
private:
T* s_list; //リニアテーブルポインタ
int capacity; //リニアテーブルの長さ
int length; //線形テーブルの要素数
};
リニアテーブルの連鎖ストレージ構造の定義
- 線形テーブルの抽象化とカプセル化
/*
* Link List - 線形テーブルの連鎖ストレージ構造
* 特徴:論理的隣接、物理的非隣接。
*/
template<class T>
class Node
{
public:
T data;
Node* next;
};
template<class T>
class l_list
{
public:
l_list(); //コンストラクタは、ヘッダーノードを初期化する
bool ListInsert(const T& item); //ロジックの最後に新しい要素項目を挿入する。
bool ListInsert(int i, const T& item); //論理的な順序で新しい要素の項目を挿入する。
int LocateElem(const T& item); //アイテム要素と等しい最初の番号を返し、それが存在しない場合は0を返す。
T GetElem(int i); //i要素の値を取得する,i=0次に、ヘッドノードのデータフィールド、すなわち、要素の数を返す。
T ListDelet(int i); //i番目の要素を削除し、その値を返す
~l_list(); //リニアテーブルを破棄する
private:
Node<T>* head; //
Node<T>* rNode; //
};
メソッドの実装
- このショーの不便の長さのために達成するための具体的な方法は、読者がプロジェクトのGitHubをジャンプしてください:、詳細にすべてのコードをお読みください。
- すべてのアクティブな問題の投稿を歓迎し、感謝スター。




