欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java數據結構基礎:緒論

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

基本概念和術語

要想知道數據結構是什么,我們首先得去知道,數據和結構是什么;

數據結構=數據+結構

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

數據

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

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

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

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

數據元素

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

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

數據項

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

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

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

數據對象

數據對象:是性質相同的數據元素的集合,是數據的子集

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

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

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

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

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

懂了吧。

結構

簡單理解就是關系。比如分子結構,就是說組成分子的原子之間的排列方式。

在現實世界中,所有的數據元素都不是獨立的,二十有特定的關系連接在一起的,我們就將這些關系稱之為結構

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

數據結構

是相互之間存在一種或多種特地給關系的數據元素的集合

這下你看完了前面的,就知道了數據結構是啥了吧。

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

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

邏輯結構與物理結構

按照我們看待的方式不同,分為邏輯結構和物理結構

邏輯結構

邏輯結構:是指數據對象中數據元素之間的相互關系

這其實也是我們最需要關注的東西;邏輯結構又分以下四種:

集合結構

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

線性結構

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

樹形結構

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

圖形結構

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

所以我們也不難看出,邏輯結構是針對具體問題,為了解決問題。所以,在這個基礎上,我們必須選擇一個合適的數據結構。

物理結構

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

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

物理結構:是指數據的邏輯結構在計算機中的存儲形式

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

數據的存儲結構應正確的反應出數據元素之間的邏輯關系,這才是最關鍵的。具體怎么去存儲數據元素之間的邏輯關系才是物理結構的重難點。

數據元素存儲形式有兩種:順序存儲和鏈式存儲

順序存儲

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

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

鏈式存儲結構

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

邏輯結構是面向數據的,物理結構是面向計算機的。所以他的基本目標就是將數據存儲在計算機中。

抽象數據類型

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

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

當初設計計算機語言的人為什么要設計數據類型呢?

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

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

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

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

抽象是指抽取出事物具有的普遍性的性質

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

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

事實上,抽象數據類型體現了程序設計中問題分解,抽象和信息隱藏的特性。

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

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

總結

所以,數據結構就是相互存在一種或者多種特定關系的數據元素的集合。。同樣是結構,卻有不同的表現形式。

邏輯結構

  • 集合結構
  • 線性結構
  • 樹形結構
  • 圖形結構

物理結構

  • 順序存儲結構
  • 鏈式存儲結構

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

相關文章

最新評論