java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)

本篇內(nèi)容主要講解“java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)”吧!

成都創(chuàng)新互聯(lián)公司于2013年成立,先為富源等服務(wù)建站,富源等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為富源企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

正文

如果說,物理上的存儲結(jié)構(gòu),表達的是數(shù)據(jù)存儲的具體位置,那么我們現(xiàn)在要討論的邏輯上的數(shù)據(jù)存儲結(jié)構(gòu),表達的就是數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系。

邏輯結(jié)構(gòu),顧名思義,實際上,我們在對數(shù)據(jù)進行處理的過程中,數(shù)據(jù)與數(shù)據(jù)之間組成了各種各樣的關(guān)系,那么我們 使用邏輯結(jié)構(gòu)的目的,就是要將這些數(shù)據(jù)有序化,從混亂難以處理的情況,轉(zhuǎn)變?yōu)橛行虿⑶铱梢蕴幚淼那闆r。

也因此,我們就知道了,在邏輯結(jié)構(gòu)中,最重要的就是數(shù)據(jù)與數(shù)據(jù)之間的邏輯關(guān)系,這關(guān)乎著數(shù)據(jù)是否有序,也關(guān)乎著數(shù)據(jù)是否能夠被更加輕松的處理。而這,恰好就是在計算機的世界里面,為什么會采用邏輯數(shù)據(jù)結(jié)構(gòu)的原因。

講到這兒,就必須要說一句了,數(shù)據(jù)結(jié)構(gòu)的目的,最終就是為了更好更容易的處理數(shù)據(jù),也因此,我們知道,數(shù)據(jù)結(jié)構(gòu)(邏輯結(jié)構(gòu)和物理結(jié)構(gòu))往往不是孤立的,而是和算法和索引技術(shù)息息相關(guān)的。

邏輯數(shù)據(jù)結(jié)構(gòu)的種類有很多,比如說有集合結(jié)構(gòu),樹形結(jié)構(gòu),圖形結(jié)構(gòu),線性結(jié)構(gòu)等等,這些不同的結(jié)構(gòu),在不同的應(yīng)用場景下,產(chǎn)生著巨大的作用,比較經(jīng)典的例如MySQL數(shù)據(jù)庫存儲就采用了樹形結(jié)構(gòu),java做數(shù)據(jù)處理的時候,經(jīng)常采用集合結(jié)構(gòu)等等。

這些數(shù)據(jù)結(jié)構(gòu),組成了計算機世界的絢麗多姿,但是與此同時,雖然已然簡化了一部分數(shù)據(jù)之間的繁亂,但是仍然有著一定的門檻在阻擋著我們?nèi)フJ知它。

接下來,我們來一個一個的了解這些邏輯數(shù)據(jù)結(jié)構(gòu)吧。

1.集合結(jié)構(gòu)

集合結(jié)構(gòu),這個數(shù)據(jù)結(jié)構(gòu)是指這個結(jié)構(gòu)內(nèi)的所有數(shù)據(jù)元素,唯一的特性是除了同屬于一個集合,之外再也沒有任何關(guān)系了。

比如說java中比較常見的List集合,我們使用這個集合,并且往這個集合中填充元素的時候,不必去關(guān)心這些元素之間有什么關(guān)系,而是只需要將這些元素存儲到集合中就行,這就是典型的集合結(jié)構(gòu)。 java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)

2.線性結(jié)構(gòu)

一般來說,大部分數(shù)據(jù)結(jié)構(gòu)都是線性結(jié)構(gòu),因此也有一種劃分方法是將邏輯結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。

線性結(jié)構(gòu),是數(shù)據(jù)結(jié)構(gòu)中的元素存在一對一的相互關(guān)系。一般來說,線性結(jié)構(gòu)可以分為一般線性表,受限線性表(棧,隊列,堆,串),推廣線性表(一維數(shù)組,廣義表)。 java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu) 線性結(jié)構(gòu)有唯一的首位,并且每個數(shù)據(jù)的上線銜接是唯一的。

線性表在不同的存儲結(jié)構(gòu)下體現(xiàn)不同,順序存儲結(jié)構(gòu)下,體現(xiàn)為順序表,鏈表存儲結(jié)構(gòu)下,單向鏈表,雙向鏈表等都是線性表。

3.樹形結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)中的元素存在一對多的相互關(guān)系;

樹結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu),其中以二叉樹最為常用,樹是以為分支關(guān)系定義的層次結(jié)構(gòu),它為計算機應(yīng)用中出現(xiàn)的具有層次關(guān)系或者分支關(guān)系的數(shù)據(jù)提供了一種自然的表示方法,用樹結(jié)構(gòu)描述的信息模型在客觀世界普遍存在。

樹形結(jié)構(gòu)一般分為一般樹和二叉樹。 java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)

4.圖形結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)中的元素存在多對多的相互關(guān)系。

圖狀結(jié)構(gòu)有可以分為有向圖和無向圖,二元決策圖。 java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)

總結(jié)

上一篇文章,《從頭開始學(xué)習(xí)->java數(shù)據(jù)結(jié)構(gòu)(一):物理上的存儲結(jié)構(gòu)》,我們聊到了四種存儲結(jié)構(gòu)

  1. 順序存儲結(jié)構(gòu)

  2. 鏈表存儲結(jié)構(gòu)

  3. 索引存儲結(jié)構(gòu)

  4. 散列存儲結(jié)構(gòu)

而本篇文章,我們聊到了四種邏輯結(jié)構(gòu)

  1. 集合結(jié)構(gòu)

  2. 線性結(jié)構(gòu)

  3. 樹形結(jié)構(gòu)

  4. 圖形結(jié)構(gòu)

常用數(shù)據(jù)結(jié)構(gòu)及用途

四種存儲結(jié)構(gòu)和四種邏輯結(jié)構(gòu),在計算機世界中,通過優(yōu)化組合成了許許多多的我們理解的數(shù)據(jù)結(jié)構(gòu),我總結(jié)了一下,如下:

  1. 數(shù)組:頻繁查詢,很少增刪。

  2. 鏈表:頻繁增刪,很少查詢。

  3. 棧:實現(xiàn)遞歸。

  4. 隊列;模擬排隊。

  5. 散列表:快速存取,犧牲空間。

  6. 二叉樹:增刪查都快,但是邏輯復(fù)雜。

  7. 堆:特殊的樹,用于排序的多。

  8. 圖:復(fù)雜結(jié)構(gòu)處理復(fù)雜問題。

到此,相信大家對“java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文名稱:java數(shù)據(jù)結(jié)構(gòu)之如何理解數(shù)據(jù)的邏輯結(jié)構(gòu)
文章出自:http://bm7419.com/article38/gegcpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、服務(wù)器托管、網(wǎng)站制作、微信公眾號、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)