最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):緒論

 更新時間:2021年07月27日 14:41:29   作者:魚小洲  
這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助

基本概念和術(shù)語

要想知道數(shù)據(jù)結(jié)構(gòu)是什么,我們首先得去知道,數(shù)據(jù)和結(jié)構(gòu)是什么;

數(shù)據(jù)結(jié)構(gòu)=數(shù)據(jù)+結(jié)構(gòu)

也就是說,我們先去研究數(shù)據(jù),再去把這些數(shù)據(jù)組成一定得樣子(結(jié)構(gòu)),自然而然的成了數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)

數(shù)據(jù):是描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別并輸入給計算機處理的符號集合

這樣說可能還是有人覺得頭痛,說直白點,空氣粒子組成了空氣,一個個的人組成了一群人,這樣就懂了吧。
以后見了面你就可以跟別人說,你是一個數(shù)據(jù),看人家會不會揍你

但是,你理解可以去這么理解,用的話不能這么去用,我們這兒說的數(shù)據(jù),是一個抽象性的概念,其實也就是符號,比如,你的for循環(huán)。所以這些符號必須滿足兩個條件:

  • 可以輸入到計算機中
  • 能被計算機程序處理

數(shù)據(jù)元素

數(shù)據(jù)元素:是組成數(shù)據(jù)的,有一定意義的基本單位,在計算機中通常作為整體處理。也被稱之為記錄

比如,在人類中,人就是數(shù)據(jù)元素,在動物中,雞鴨魚這些就是數(shù)據(jù)元素;

數(shù)據(jù)項

數(shù)據(jù)項:一個數(shù)據(jù)元素可以由瑞剛額數(shù)據(jù)項組成;數(shù)據(jù)項是不可分割的最小單位

舉個例子:組成人這樣的數(shù)據(jù)元素就是由耳朵,鼻子,眼睛這樣的數(shù)據(jù)項組成

我們在真正討論問題的時候,主要還是數(shù)據(jù)元素,而不是去討論數(shù)據(jù)項。你看個電影不可能一直去研究別人演員撒。

數(shù)據(jù)對象

數(shù)據(jù)對象:是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的子集

人都有生日吧,都有年齡吧,都有姓名吧,這就是他們的性質(zhì)。

為什么又說是性質(zhì)相同的數(shù)據(jù)元素的集合呢?你在定義一個類的時候,你會去根據(jù)某一個人去定義嗎?不會吧,你肯定是根據(jù)總體的特征去定義,比如:

class Person(){
	private String name;
	private String addr;
	private int age;
}

你肯定是這樣去定義,而不是:

class Zhangsan(){
	private int money;
	private int age;
}

懂了吧。

結(jié)構(gòu)

簡單理解就是關(guān)系。比如分子結(jié)構(gòu),就是說組成分子的原子之間的排列方式。

在現(xiàn)實世界中,所有的數(shù)據(jù)元素都不是獨立的,二十有特定的關(guān)系連接在一起的,我們就將這些關(guān)系稱之為結(jié)構(gòu)

比如你和你的親戚,一方有難,八方支援的道理總得知道。

數(shù)據(jù)結(jié)構(gòu)

是相互之間存在一種或多種特地給關(guān)系的數(shù)據(jù)元素的集合

這下你看完了前面的,就知道了數(shù)據(jù)結(jié)構(gòu)是啥了吧。

所以,要想編寫出一個好的程序,必須分待處理對象的特性以及個處理對象之間存在的關(guān)系。這也就是我們?yōu)槭裁匆獙W習數(shù)據(jù)結(jié)構(gòu)的意義。

我們提到了很多次的關(guān)系,到底是什么樣的關(guān)系,我們往下看看?

邏輯結(jié)構(gòu)與物理結(jié)構(gòu)

按照我們看待的方式不同,分為邏輯結(jié)構(gòu)和物理結(jié)構(gòu)

邏輯結(jié)構(gòu)

邏輯結(jié)構(gòu):是指數(shù)據(jù)對象中數(shù)據(jù)元素之間的相互關(guān)系

這其實也是我們最需要關(guān)注的東西;邏輯結(jié)構(gòu)又分以下四種:

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

集合結(jié)構(gòu)中的數(shù)據(jù)元素除了同屬于一個集合外,他們之間沒有任何關(guān)系。各個數(shù)據(jù)元素是平等的,他們的共同屬性就是同屬于一個集合。
就比如說,你和你的大學同學都處于同一個教室,但是你和他們并不是很熟
在數(shù)據(jù)結(jié)構(gòu)中,集合就很類似于數(shù)學當中的集合,長這樣:
在這里插入圖片描述

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

這個很好理解,就是一對一的關(guān)系,就類似于排成一條線。長這樣兒:
在這里插入圖片描述

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

數(shù)據(jù)元素就像一棵樹一樣擺放,就注定了,數(shù)據(jù)元素是一對多的形式
在這里插入圖片描述

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

元素與元素之間用線連接,如果是指向某元素,就用方向箭頭連接。同處于一個集合內(nèi),擺放順序是雜亂無章的
在這里插入圖片描述

所以我們也不難看出,邏輯結(jié)構(gòu)是針對具體問題,為了解決問題。所以,在這個基礎(chǔ)上,我們必須選擇一個合適的數(shù)據(jù)結(jié)構(gòu)。

物理結(jié)構(gòu)

我們上面聊完了邏輯結(jié)構(gòu),也清楚了大致的屬性是什么。我們再來看看另一個-------物理結(jié)構(gòu)

物理結(jié)構(gòu)好像在其他的書里面也叫做是存儲結(jié)構(gòu),但是都差不多,意思都是相近的。

物理結(jié)構(gòu):是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存儲形式

我們前面知道,數(shù)據(jù)是數(shù)據(jù)元素的集合,那么根據(jù)物理結(jié)構(gòu)的定義,實際上就是怎么把數(shù)據(jù)元素存儲在計算機的存儲器中存儲器主要是針對內(nèi)存而言的,比如說硬盤,光盤之類的。

數(shù)據(jù)的存儲結(jié)構(gòu)應(yīng)正確的反應(yīng)出數(shù)據(jù)元素之間的邏輯關(guān)系,這才是最關(guān)鍵的。具體怎么去存儲數(shù)據(jù)元素之間的邏輯關(guān)系才是物理結(jié)構(gòu)的重難點。

數(shù)據(jù)元素存儲形式有兩種:順序存儲和鏈式存儲

順序存儲

把數(shù)據(jù)元素存放在地址連續(xù)的存儲單元里,其數(shù)據(jù)的邏輯關(guān)系和物理關(guān)系是一致的。
在這里插入圖片描述

就好比說,你去食堂吃飯,挨個排隊,誰也別插隊。
在我們當初學計算機的時候,當你想創(chuàng)建一個數(shù)組,那么計算機就會根據(jù)你指定的長度開辟出一個空間,挨個存儲

鏈式存儲結(jié)構(gòu)

如果世間萬物都是這樣的有順序那么就好了。但是呢,怎么可能;
在實際上,總是會有人插隊,也總是會有人不排了,突然就走了。如果我們還是用順序存儲,無疑是浪費空間的。所以我們就選擇了鏈式存儲。
鏈式存儲結(jié)構(gòu):把數(shù)據(jù)元素存放在任意的存儲單元里,可以是連續(xù)的,也可以是不連續(xù)的
這樣的話,數(shù)據(jù)的存儲關(guān)系并不能反映出邏輯關(guān)系,因為都是雜亂無章的。所以,我們就需要一個索引去指向他,就類似于指針的作用。每個元素都會有自己的地址:
在這里插入圖片描述

邏輯結(jié)構(gòu)是面向數(shù)據(jù)的,物理結(jié)構(gòu)是面向計算機的。所以他的基本目標就是將數(shù)據(jù)存儲在計算機中。

抽象數(shù)據(jù)類型

我們在看抽象數(shù)據(jù)類型的時候,先來看看數(shù)據(jù)類型是什么:

數(shù)據(jù)類型:是指一組性質(zhì)相同的值的集合及定義在此集合上的一些操作的總稱
在Java中,有int string boolean等

當初設(shè)計計算機語言的人為什么要設(shè)計數(shù)據(jù)類型呢?

比如說,大家都需要買房子。自然而然,有人想買大房子,有人想買小房子,還有的人買不起房子(比如我)

于是呢,就出來了各式各樣的房子,比如別墅,小戶型等等。

同樣的道理,計算機也不是無窮大的,比如你只想計算1+1這樣的簡單加減法,就不需要那么大的內(nèi)存空間。所以啊,計算機的研究者們就考慮,細分出具體的數(shù)據(jù)類型出來。

再者,因為計算機有不同的操作系統(tǒng),我們不可能為每一種計算機都編寫一套計算機語言。我們就可以把這些共同的屬性給抽取出來,作為一種抽象體。

抽象是指抽取出事物具有的普遍性的性質(zhì)

抽象是一種思維,而不是一種具體的形式。

抽象數(shù)據(jù)類型:是指一個數(shù)學模型及定義在該模型上的一組操作。
抽象的數(shù)據(jù)仍然是定義的邏輯關(guān)系,而與事物的本身無關(guān)。

事實上,抽象數(shù)據(jù)類型體現(xiàn)了程序設(shè)計中問題分解,抽象和信息隱藏的特性。

抽象數(shù)據(jù)類型把實際生活中的問題分解為多個規(guī)模小且容易處理的問題,然后建立一個計算機能處理的數(shù)據(jù)模型。并把每個功能模塊的實現(xiàn)細節(jié)作為一個獨立的單元,從而使具體實現(xiàn)過程隱藏起來。

比如Java中,你會先去定義一個模型層,用來泛指某一類模型。

總結(jié)

所以,數(shù)據(jù)結(jié)構(gòu)就是相互存在一種或者多種特定關(guān)系的數(shù)據(jù)元素的集合。。同樣是結(jié)構(gòu),卻有不同的表現(xiàn)形式。

邏輯結(jié)構(gòu)

  • 集合結(jié)構(gòu)
  • 線性結(jié)構(gòu)
  • 樹形結(jié)構(gòu)
  • 圖形結(jié)構(gòu)

物理結(jié)構(gòu)

  • 順序存儲結(jié)構(gòu)
  • 鏈式存儲結(jié)構(gòu)

本篇文章就到這里了,希望能給你帶來幫助,也希望能夠您能夠關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java實現(xiàn)將導出帶格式的Excel數(shù)據(jù)到Word表格

    Java實現(xiàn)將導出帶格式的Excel數(shù)據(jù)到Word表格

    在Word中制作報表時,我們經(jīng)常需要將Excel中的數(shù)據(jù)復制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無需打開另一個Excel文件。本文將通過Java應(yīng)用程序詳細介紹如何把帶格式的Excel數(shù)據(jù)導入Word表格。希望這篇文章能對大家有所幫助
    2022-11-11
  • Springboot主程序類注解配置過程圖解

    Springboot主程序類注解配置過程圖解

    這篇文章主要介紹了Springboot主程序類注解配置過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java泛型的使用限制實例分析

    Java泛型的使用限制實例分析

    這篇文章主要介紹了Java泛型的使用限制,結(jié)合實例形式分析了不能使用java泛型的情況以及泛型使用的相關(guān)注意事項,需要的朋友可以參考下
    2019-08-08
  • SpringBoot整合阿里云短信服務(wù)的方法

    SpringBoot整合阿里云短信服務(wù)的方法

    在實際項目中經(jīng)常有發(fā)送短信的功能,今天進說一下SpringBoot整合阿里云短信服務(wù)的相關(guān)知識,新建短信微服務(wù),編寫發(fā)送短信接口的方法文中給大家介紹的很詳細,需要的朋友參考下吧
    2021-10-10
  • Java中的OpenTracing使用實例

    Java中的OpenTracing使用實例

    這篇文章主要介紹了Java中的OpenTracing使用實例,主要的OpenTracing API將所有主要組件聲明為接口以及輔助類,例如Tracer,Span,SpanContext,Scope,ScopeManager,Format(用映射定義通用的SpanContext注入和提取格式),需要的朋友可以參考下
    2024-01-01
  • springboot配置https訪問的方法

    springboot配置https訪問的方法

    這篇文章主要介紹了springboot配置https訪問的方法,需要的朋友可以參考下
    2018-11-11
  • idea引入外部jar包的方法實現(xiàn)

    idea引入外部jar包的方法實現(xiàn)

    本文主要介紹了idea引入外部jar包的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • java中File類的使用方法

    java中File類的使用方法

    本篇文章介紹了,在java中File類的使用方法。需要的朋友參考下
    2013-04-04
  • Java中接口的多態(tài)詳解

    Java中接口的多態(tài)詳解

    大家好,本篇文章主要講的是Java中接口的多態(tài)詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題

    Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題

    這篇文章主要介紹了Java?file.delete刪除文件失敗,Windows磁盤出現(xiàn)無法訪問的文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

临沭县| 农安县| 遂溪县| 勐海县| 肥乡县| 眉山市| 湘潭县| 柞水县| 祁门县| 凯里市| 南通市| 濮阳县| 合江县| 平凉市| 卢湾区| 新沂市| 青冈县| 如东县| 通辽市| 方正县| 右玉县| 华亭县| 北海市| 麻城市| 咸丰县| 武穴市| 扎鲁特旗| 高要市| 子长县| 曲靖市| 乐安县| 丹棱县| 虞城县| 江都市| 罗山县| 汝阳县| 临西县| 澄江县| 台湾省| 金川县| 综艺|