Coding冒險之旅 資料結構

2021-09-29 20:35:45 字數 856 閱讀 8623

有限個相同資料型別的元素按順序排列的集合為陣列。

陣列有連續的記憶體空間和相同型別的資料。正式有了這兩個限制,才有了乙個堪稱殺手鐗的特性:「隨機訪問」,但是刪除,插入乙個資料,為了保證連續性,就需要做大量的資料搬移工作。

只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。

佇列是一種先進先出(first in first out)的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。

是一種操作受限的線性表只允許從一端插入和刪除資料。棧有兩種儲存方式,即線性儲存和鏈結儲存(鍊錶)。棧的乙個最重要的特徵就是棧的插入和刪除只能在棧頂進行,所以每次刪除的元素都是最後進棧的元素,故棧也被稱為後進先出(lifo)表。每個棧都有乙個棧頂指標,它初始值為-1,且總是指向最後乙個入棧的元素,棧有兩種處理方式,即進棧(push)和出棧(pop),因為在進棧只需要移動乙個變數儲存空間,所以它的時間複雜度為o(1),但是對於出棧分兩種情況,棧未滿時,時間複雜度也為o(1),但是當棧滿時,需要重新分配記憶體,並移動棧內所有資料,所以此時的時間複雜度為o(n)。

利用陣列支援按照下標隨機訪問的特性,所以雜湊表其實是陣列的一種擴充套件,由陣列演化而來。

樹是由結點或頂點和邊組成的(可能是非線性的)且不存在著任何環的一種資料結構。沒有結點的樹稱為空(null或empty)樹。一棵非空的樹包括乙個根結點,還(很可能)有多個附加結點,所有結點構成乙個多級分層結構。

用陣列實現的二叉樹,所有它沒有使用父指標或者子指標。堆根據「堆屬性」來排序,「堆屬性」決定了樹中節點的位置。

是一些頂點的集合,這些頂點通過一系列邊結對(連線)。頂點用圓圈表示,邊就是這些圓圈之間的連線。頂點之間通過邊連線。

持續更新中

資料結構之旅 迴圈佇列

說明 時間關係,這裡只給出 及注釋,有空的時候再詳細介紹一下 的實現流程。1.及注釋 如下 include includetypedef char elemtype typedef struct sqqueue define overflow 1 define ok 1 define error 0...

資料結構之旅 順序棧入門操作

說明 書中已有關於順序棧的型別定義 棧初始化 入棧操作,顯然這些都是比較理論的演算法,書中並沒有給出乙個完整可以執行的例子,這對初學者學習在理解上會有一定的難度,因此,需要編寫乙個簡單的例子來理解棧的最基本操作。1.程式功能 通過使用棧來編寫乙個程式,實現兩個數的交換。2.程式 及注釋 及注釋如下 ...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...