データ構造研究ノート1.1-線形テーブルの概念

データ構造研究ノート1.1-線形テーブルの概念

前に書く

これは研究ノートであり、徐々に理解するプロセスです。
それが永遠に続くことを願っています。

目次

まず、線形テーブルの概念と定義、そしてもちろんC ++の抽象基本クラスを理解しましょう。特定の実装は次のセクションに残されています。

概念

  1. 線形テーブルは有限シーケンスです。つまり、線形テーブルには最初のエントリと最後のエントリのみがあり、他のエントリには直接の先行が1つだけあります(最初のエントリには先行がありません)。ただし、エントリを除いて最後のエントリは除きます。 、他のエントリには、直後の後続iが1つだけあります(最後のエントリには後続がありません)。
  2. L =(a1、a2、…、an)、Lはテーブルの名前、nはテーブルの長さです。
  3. 最初のエントリはヘッダーと呼ばれ、最後のエントリはテールと呼ばれます
  4. 隣接関係は1対1であり、すべてのノードは1対1の隣接関係に基づいて線形構造を形成します。
  5. 線形テーブルの各要素が異なるデータ型を持つことは概念的に許可されていますが、現在の学習プロセスでは同じデータ型のみが考慮されます。

いくつかの例

線形テーブルのいくつかの例:
COLOR =( 'Red'、Orange '、' Yellow '、' Green '、' Blue '、' Black ')
DEPT =(通信、コンピューター、自動化、マイクロエレクトロニクス、建築および都市計画、ライフ科学、精密機器)
スコア=(667、664、659、659、657、654、653、652、651、650、650)

線形テーブルの値とその位置の間には、関係がある場合とない場合があります。順序付き線形テーブルの要素は値の昇順で配置されますが、順序なし線形テーブルにはそのような関係はありません。

線形テーブルの抽象データ型

// 线性表的抽象数据类型
ADT LinearList is
Objects: n(0)个原子表项的一个有限序列。
Function:
	create()					创建一个空线性表
	int Length()				计算表长度
	int search(T& x)			找x在表中的位置,返回表项位置
	int Locate(int i)			返回第i个表项在表中的位置
	bool getData(int i,T& x)  	取第i个表项的值
	bool setData(int i,T& x)	用x修改第i个表项的值
	bool Insert(int i,T& x)		在第i个表项后插入x
	bool Remove(int i,T&x )		删除表中第i个表项,通过x返回删除表项的值
	bool IsEmpty()				判断表是否为空
	bool IsFull()				判断表是否已满
	void Sort()					对当前表排序
end LinearList

上記の計算は論理レベルでの定義にすぎず、「何をすべきかのみが示されています。収納構造が決まればやり方などの詳細がわかります。

参考文献:「データ構造」(オブジェクト指向メソッドとC ++言語で記述)(第2版)。清華大学出版局。YinRenkun

おすすめ

転載: blog.csdn.net/qq_45830912/article/details/109633708