C 資料結構

2022-01-23 09:22:47 字數 1585 閱讀 1456

乙個資料元素中包含多個資料項;

線性表是資料結構中最簡單、最基本也是最常用的一種,它是線性結構的抽象,上文提到線性結構的特點是結構中的資料元素之間關係為一對一關係。也就是說資料元素是乙個接乙個的排序。

線性表定義:

線性表linear list:由n(n>=0)個相同型別的資料元素構成的有限序列。記為l=(a1,a2,...,ai-1,ai,ai+1,...,an)。可使用下式表示:

l=(d,r)

其中,d是資料元素的有限集合,r是資料元素之間關係的有限集合。

線性表基本操作包括插入操作、刪除操作、查詢、清空等。

線性表的分類

按線性表的元素結構分,可將線性表分為:

2、鍊錶 

2)雙向鍊錶:其每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。

3)迴圈鍊錶:其最後乙個結點指向頭結點,形成乙個環;從迴圈鍊錶中的任何乙個結點出發都能找到任何其他結點。

順序表

順序表(sequence list)是在計算機內在中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。

單鏈表

單鏈表(singly linked list),也稱單向鍊錶,鍊錶中的一種,其特點鏈結方向是意向的,對鍊錶的訪問要通過順序讀取。在順序鍊錶中元素之間緊密相連,為了表示兩個資料元素邏輯上的相鄰關係,除了儲存資料元素本身的資訊外,還要儲存與其相鄰的下一資料元素的儲存位址資訊,也就是指標資訊,也叫引用域。資料元素資訊和指標資訊組成該資料元素的儲存映像,這就是節點(node)。

資料域也可使用data表示,指標域使用next表示。

這樣線性表就通過每個結點的指標域形成了一根「鏈條」,也就是我們所說的「鍊錶」。如果結點的引用域只儲存該節點直接後繼節點的指標域,則該鍊錶稱為單鏈表(singly linked list)。

......

集合:

集合類時為保障資料的安全儲存和訪問設計的,常見的集合類如下:

arraylist  使用大小可按需動態增加的陣列實現system.collections.ilist 介面。

sortedlist  表示鍵/值對的集合,這些鍵/值對按鍵排序並可按照鍵和索引訪問。

queue  表示物件的先進先出集合。

stack  表示物件簡單的後進先出集合。

hashtable  表示鍵/值對的集合,這些鍵/值對根據鍵的雜湊**進行組織。

集合類實現的介面如下:

icollection  定義所有非泛型集合的大小,列舉數和同步方法。

icomparer  公開一種比較兩個物件的方法。

ienumerable  公開列舉數,該列舉數支援雜器在非泛型集合上進行簡單迭代。

ilist  表示可按照物件單獨訪問的非泛型集合。

idictionary  表示鍵/值對的非通用集合。

idictionaryenumerator  列舉非泛型字典的元素。

C 資料結構

c 中實現通用資料結構 在程式設計當中經常會出現使用同種資料結構的不同例項的情況。例如 在乙個 程式中可以使用多個佇列 樹 圖等結構來組織資料。同種結構的不同例項,也 許只在資料元素的型別或數量上略有差異,如果對每個例項都重新定義,則非常麻 煩且容易出錯。那麼能否對同種型別資料結構僅定義一次呢?答案...

資料結構 C

本文將根據自己對資料結構的理解,介紹資料結構的基本型別 鍊錶。寫的不好的地方歡迎指正。首先是單鏈表。結點資料結構定義 struct node return false 3 刪除元素 bool delete node first,int x 現在介紹雙鏈表 首先也是結點結構定義 struct node...

C 資料結構

c c 陣列允許定義可儲存相同型別資料項的變數,但是結構是 c 中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性 為了定義結構,您必須使用struct語句。struct 語句定義了乙個包含多個成...