一篇文章帶你入門(mén)Java數(shù)據(jù)結(jié)構(gòu)
1、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)
邏輯結(jié)構(gòu):
集合: 數(shù)據(jù)與數(shù)據(jù)之間沒(méi)有任何關(guān)系
線性: 一對(duì)一關(guān)系
樹(shù)型: 一對(duì)多關(guān)系
圖型: 多對(duì)多關(guān)系
物理結(jié)構(gòu):
順序結(jié)構(gòu)(數(shù)組):
鏈?zhǔn)浇Y(jié)構(gòu)(鏈表):
2、順序結(jié)構(gòu),鏈?zhǔn)浇Y(jié)構(gòu),棧,隊(duì)列,二叉樹(shù)
順序結(jié)構(gòu):
可擴(kuò)容數(shù)組,底層用數(shù)組實(shí)現(xiàn),順序排列,標(biāo)號(hào)連續(xù),內(nèi)存空間連續(xù)
優(yōu)缺點(diǎn):
查詢(xún)速度快,在中間頻繁的增刪操作慢,碎片內(nèi)存空間利用不到
鏈?zhǔn)浇Y(jié)構(gòu):
底層用節(jié)點(diǎn)(Object date 和 前后節(jié)點(diǎn)或者下一個(gè)結(jié)點(diǎn)的引用)
內(nèi)存順序連續(xù),但是在物理存儲(chǔ)空間不連續(xù)
優(yōu)缺點(diǎn):
頻繁的增刪操作速度快,查詢(xún)速度慢,綜合起來(lái)沒(méi)有ArrayList好,空間利用率好,可以利用到物理內(nèi)存中的碎片空間
棧:
可以用數(shù)組或者鏈表實(shí)現(xiàn),先進(jìn)后出原則
方法:
push()壓棧 和 pop()彈棧
隊(duì)列:
可以用數(shù)組或者鏈表實(shí)現(xiàn),先進(jìn)先出原則
二叉樹(shù)
普通二叉樹(shù):

滿二叉樹(shù):

完全二叉樹(shù):
k - 1 層是滿二叉樹(shù),k 層從左到右是連續(xù)的

平衡二叉樹(shù):
左右子樹(shù)高度相差不超過(guò)1

排序二叉樹(shù):
左子樹(shù)的值都小于根,右子樹(shù)的值都大于等于根
二叉樹(shù)的遍歷:
先序遍歷 - 根左右
中序遍歷 - 左根右
后序遍歷 - 左右根
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
java web實(shí)現(xiàn)簡(jiǎn)單聊天室
這篇文章主要為大家詳細(xì)介紹了java-web實(shí)現(xiàn)簡(jiǎn)單聊天室,含拍一拍功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
Java中的CopyOnWriteArrayList原理詳解
這篇文章主要介紹了Java中的CopyOnWriteArrayList原理詳解,如源碼所示,CopyOnWriteArrayList和ArrayList一樣,都在內(nèi)部維護(hù)了一個(gè)數(shù)組,操作CopyOnWriteArrayList其實(shí)就是在操作內(nèi)部的數(shù)組,需要的朋友可以參考下2023-12-12
Java游戲開(kāi)發(fā)之俄羅斯方塊的實(shí)現(xiàn)
俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類(lèi)視頻游戲。本文和大家分享了利用Java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典的小游戲的示例代碼,需要的可以參考一下2022-05-05
SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn)
本文主要介紹了SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn),,通過(guò)打印SQL語(yǔ)句可以幫助開(kāi)發(fā)人員快速了解數(shù)據(jù)庫(kù)的操作情況,進(jìn)而進(jìn)行性能分析和調(diào)試,感興趣的可以了解一下2023-11-11
Springboot集成minio實(shí)現(xiàn)文件存儲(chǔ)的實(shí)現(xiàn)代碼
MinIO?是一款基于Go語(yǔ)言的高性能對(duì)象存儲(chǔ)服務(wù),本文主要介紹了Springboot集成minio實(shí)現(xiàn)文件存儲(chǔ)的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java多態(tài)實(shí)現(xiàn)原理詳細(xì)梳理總結(jié)
這篇文章主要介紹了Java多態(tài)實(shí)現(xiàn)原理詳細(xì)梳理總結(jié),多態(tài)是繼封裝、繼承之后,面向?qū)ο蟮牡谌筇匦?,本文只總結(jié)了多態(tài)的實(shí)現(xiàn)原理,需要的朋友可以參考一下2022-06-06
記一次用IDEA打開(kāi)java項(xiàng)目后不能運(yùn)行的解決方法
這篇文章主要介紹了記一次用IDEA打開(kāi)java項(xiàng)目后不能運(yùn)行的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
JVM堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作的問(wèn)題解析
這篇文章主要介紹了JVM 堆內(nèi)存溢出后,其他線程是否可繼續(xù)工作?,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

