資料結構=資料+結構,資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。
一、資料的邏輯結構:指反映資料元素之間的邏輯關係的資料結構,其中的邏輯關係是指資料元素之間的前後件關係,而與他們在計算機中的儲存位置無關。
邏輯結構包括:
集合資料結構中的元素之間除了「同屬乙個集合」 的相互關係外,別無其他關係
線性結構資料結構中的元素存在一對一的相互關係
樹形結構資料結構中的元素存在一對多的相互關係
圖形結構資料結構中的元素存在多對多的相互關係
二、資料的物理結構:指資料的邏輯結構在計算機儲存空間的存放形式。
資料的物理結構是資料結構在計算機中的表示(又稱映像),它包括資料元素的機內表示和關係的機內表示。由於具體實現的方法有順序、鏈結、索引、雜湊等多種,所以,一種資料結構可表示成一種或多種儲存結構。
資料元素的機內表示(映像方法)用二進位制位(bit)的位串表示資料元素。通常稱這種位串為節點(node)。當資料元素有若干個資料項組成時,位串中與資料項對應的子位串稱為資料域(data field)。因此,節點是資料元素的機內表示(或機內映像)。
關係的機內表示
(映像方法)
資料元素之間的關係的機內表示可以分為順序映像和非順序映像,常用兩種儲存結構:順序儲存結構和鏈式儲存結構。順序映像借助元素在儲存器中的相對位置來表示資料元素之間的邏輯關係。非順序映像借助指示元素儲存位置的指標(pointer)來表示資料元素之間的邏輯關係。
三、資料結構的分類:根據資料元素間關係的不同特性,通常有下列四類基本的結構: ⑴集合結構。該結構的資料元素間的關係是「屬於同乙個集合」。 ⑵線性結構。該結構的資料元素之間存在著一對一的關係。 ⑶樹型結構。該結構的資料元素之間存在著一對多的關係。 ⑷圖形結構。該結構的資料元素之間存在著多對多的關係,也稱網狀結構。
下面是一些常用的資料結構:
資料結構優點缺點
陣列插入快
查詢慢,刪除慢,大小固定,只能儲存單一元素
有序陣列比無序陣列查詢快
插入慢,刪除慢,大小固定,只能儲存單一元素
棧提供後進先出的訪問方式
訪問其他項很慢
佇列提供先進先出的訪問方式
訪問其他項很慢
線性表插入快,相對於陣列大小可擴充套件
查詢慢,刪除慢
鍊錶插入快,刪除快
查詢慢二叉樹如果樹是平衡的,則查詢、插入、刪除都快
刪除演算法複雜
紅黑樹查詢、刪除、插入都快,樹總是平衡的
演算法複雜
2-3-4樹查詢、刪除、插入都快,樹總是平衡的,類似的樹對磁碟儲存有效
演算法複雜
雜湊表如果關鍵字已知,則訪問極快
刪除慢,如果不知道關鍵字訪問慢,對儲存空間使用不充分
堆插入、刪除快,對最大資料項訪問快
對其他資料項訪問慢
圖對現實世界建模
有些演算法慢且複雜
資料結構與演算法簡介
演算法簡介 一 資料結構與演算法的關係 雖然本門課程叫 資料結構 但經常會講到演算法,以及它們之間的關係。在市面上也經常有諸如 資料結構與演算法分析 這樣名字的書。實際上,資料結構與演算法是依存關係。只談資料結構而拋棄演算法,則資料是 死 的,沒有活力的 只談演算法而拋棄資料結構,則演算法無法有所依...
資料結構與演算法之樹簡介
1.示例樹的圖示 2.樹的定義與結構特點 1.樹的定義 由乙個或者多個 n 0 節點組成的有限集合t,有且僅有乙個節點稱為根 root 當n 1的時候,其餘的節點分為m m 0 個互不相交的有限集合t1,t2,tm.每個集合本身又是棵樹,被稱作這顆樹的子樹.由此可以看出樹具有遞迴性,大樹裡面有小樹 ...
資料結構與演算法 資料結構之棧
棧的英文名是stack 棧的應用場景 表示式的轉換 中綴表示式轉字尾表示式 與求值 實際解決 二叉樹的遍歷。圖形的深度優先 depth一first 搜尋法。package org.yc public class test class arraystack boolean isfull return ...