您好,登錄后才能下訂單哦!
本篇內容主要講解“java數據結構之如何理解數據的邏輯結構”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java數據結構之如何理解數據的邏輯結構”吧!
如果說,物理上的存儲結構,表達的是數據存儲的具體位置,那么我們現在要討論的邏輯上的數據存儲結構,表達的就是數據與數據之間的關系。
邏輯結構,顧名思義,實際上,我們在對數據進行處理的過程中,數據與數據之間組成了各種各樣的關系,那么我們 使用邏輯結構的目的,就是要將這些數據有序化,從混亂難以處理的情況,轉變為有序并且可以處理的情況。
也因此,我們就知道了,在邏輯結構中,最重要的就是數據與數據之間的邏輯關系,這關乎著數據是否有序,也關乎著數據是否能夠被更加輕松的處理。而這,恰好就是在計算機的世界里面,為什么會采用邏輯數據結構的原因。
講到這兒,就必須要說一句了,數據結構的目的,最終就是為了更好更容易的處理數據,也因此,我們知道,數據結構(邏輯結構和物理結構)往往不是孤立的,而是和算法和索引技術息息相關的。
邏輯數據結構的種類有很多,比如說有集合結構,樹形結構,圖形結構,線性結構等等,這些不同的結構,在不同的應用場景下,產生著巨大的作用,比較經典的例如mysql數據庫存儲就采用了樹形結構,java做數據處理的時候,經常采用集合結構等等。
這些數據結構,組成了計算機世界的絢麗多姿,但是與此同時,雖然已然簡化了一部分數據之間的繁亂,但是仍然有著一定的門檻在阻擋著我們去認知它。
接下來,我們來一個一個的了解這些邏輯數據結構吧。
集合結構,這個數據結構是指這個結構內的所有數據元素,唯一的特性是除了同屬于一個集合,之外再也沒有任何關系了。
比如說java中比較常見的List集合,我們使用這個集合,并且往這個集合中填充元素的時候,不必去關心這些元素之間有什么關系,而是只需要將這些元素存儲到集合中就行,這就是典型的集合結構。
一般來說,大部分數據結構都是線性結構,因此也有一種劃分方法是將邏輯結構分為線性結構和非線性結構。
線性結構,是數據結構中的元素存在一對一的相互關系。一般來說,線性結構可以分為一般線性表,受限線性表(棧,隊列,堆,串),推廣線性表(一維數組,廣義表)。 線性結構有唯一的首位,并且每個數據的上線銜接是唯一的。
線性表在不同的存儲結構下體現不同,順序存儲結構下,體現為順序表,鏈表存儲結構下,單向鏈表,雙向鏈表等都是線性表。
數據結構中的元素存在一對多的相互關系;
樹結構是一類重要的非線性數據結構,其中以二叉樹最為常用,樹是以為分支關系定義的層次結構,它為計算機應用中出現的具有層次關系或者分支關系的數據提供了一種自然的表示方法,用樹結構描述的信息模型在客觀世界普遍存在。
樹形結構一般分為一般樹和二叉樹。
數據結構中的元素存在多對多的相互關系。
圖狀結構有可以分為有向圖和無向圖,二元決策圖。
上一篇文章,《從頭開始學習->java數據結構(一):物理上的存儲結構》,我們聊到了四種存儲結構:
順序存儲結構
鏈表存儲結構
索引存儲結構
散列存儲結構
而本篇文章,我們聊到了四種邏輯結構:
集合結構
線性結構
樹形結構
圖形結構
四種存儲結構和四種邏輯結構,在計算機世界中,通過優化組合成了許許多多的我們理解的數據結構,我總結了一下,如下:
數組:頻繁查詢,很少增刪。
鏈表:頻繁增刪,很少查詢。
棧:實現遞歸。
隊列;模擬排隊。
散列表:快速存取,犧牲空間。
二叉樹:增刪查都快,但是邏輯復雜。
堆:特殊的樹,用于排序的多。
圖:復雜結構處理復雜問題。
到此,相信大家對“java數據結構之如何理解數據的邏輯結構”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。