資料結構 堆疊,鍊錶

2022-02-26 22:08:33 字數 1696 閱讀 5333

一、資料的邏輯結構:指反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。邏輯結構包括:

集合資料結構中的元素之間除了「同屬乙個集合」 的相互關係外,別無其他關係;

2.線性結構

資料結構中的元素存在一對一的相互關係;

3.樹形結構

資料結構中的元素存在一對多的相互關係;

4.圖形結構

資料結構中的元素存在多對多的相互關係。

二、資料的物理結構:指資料的邏輯結構在計算機儲存空間的存放形式。

資料的物理結構是資料結構在計算機中的表示(又稱映像),它包括資料元素的機內表示和關係的機內表示。由於具體實現的方法有順序、鏈結、索引、雜湊等多種,所以,一種資料結構可表示成一種或多種儲存結構。

資料元素的機內表示(映像方法): 用二進位制位(bit)的位串表示資料元素。通常稱這種位串為節點(node)。當資料元素有若干個資料項組成時,位串中與個資料項對應的子位串稱為資料域(data field)。因此,節點是資料元素的機內表示(或機內映像)。

關係的機內表示(映像方法):資料元素之間的關係的機內表示可以分為順序映像和非順序映像,常用兩種儲存結構:順序儲存結構和鏈式儲存結構。順序映像借助元素在儲存器中的相對位置來表示資料元素之間的邏輯關係。非順序映像借助指示元素儲存位置的指標(pointer)來表示資料元素之間的邏輯關係。

在程式設計中,為了處理方便, 把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中, 陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列、字元陣列、指標陣列、結構陣列等各種類別。

是只能在某一端插入和刪除的特殊線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。

一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列是按照「先進先出」或「後進後出」的原則組織資料的。佇列中沒有元素時,稱為空佇列。

是一種物理儲存單元上非連續、非順序的儲存結構,它既可以表示線性結構,也可以用於表示非線性結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點(鍊錶中每乙個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:乙個是儲存資料元素的資料域,另乙個是儲存下乙個結點位址的指標域。

是包含n(n>0)個結點的有窮集合k,且在k中定義了乙個關係n,n滿足 以下條件:

(1)有且僅有乙個結點 k0,他對於關係n來說沒有前驅,稱k0為樹的根結點。簡稱為根(root)。  (2)除k0外,k中的每個結點,對於關係n來說有且僅有乙個前驅。

(3)k中各結點,對關係n來說可以有m個後繼(m>=0)。

圖是由結點的有窮集合v和邊的集合e組成。其中,為了與樹形結構加以區別,在圖結構中常常將結點稱為頂點,邊是頂點的有序偶對,若兩個頂點之間存在一條邊,就表示這兩個頂點具有相鄰關係。

在電腦科學中,堆是一種特殊的樹形資料結構,每個結點都有乙個值。通常我們所說的堆的資料結構,是指二叉堆。堆的特點是根結點的值最小(或最大),且根結點的兩個子樹也是乙個堆。

若結構中存在關鍵字和k相等的記錄,則必定在f(k)的儲存位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關係f為雜湊函式(hash function),按這個思想建立的表為雜湊表。

資料結構(上) 線性表 鍊錶 堆疊 佇列

mooc浙江大學陳越 何欽銘 老師的課程刷課筆記 一 線性表的c語言實現 typedef int position typedef struct lnode list struct lnode 初始化 list makeempty 查詢 define error 1position find lis...

資料結構 PTA 鍊錶逆置 另類堆疊 函式 鍊錶

本題要求實現乙個函式,將給定單向鍊錶逆置,即表頭置為表尾,表尾置為表頭。鍊錶結點定義如下 struct listnode struct listnode reverse struct listnode head 其中head是使用者傳入的鍊錶的頭指標 函式reverse將鍊錶head逆置,並返回結果...

資料結構中陣列 鍊錶 堆疊和佇列

資料結構 是指相互之間存在一種或多種特定關係的資料元素的集合。聽起來是不是很抽象,簡單理解 資料結構就是描述物件間邏輯關係的學科。比如 佇列就是一種先進先出的邏輯結構,棧是一種先進後出的邏輯結構,家譜是一種樹形的邏輯結構!初學資料結構的時候很不理解為什麼有 棧 這個東西 佇列很容易理解 無論購物就餐...