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

滿二叉樹:

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

平衡二叉樹:
左右子樹高度相差不超過1

排序二叉樹:
左子樹的值都小于根,右子樹的值都大于等于根
二叉樹的遍歷:
先序遍歷 - 根左右
中序遍歷 - 左根右
后序遍歷 - 左右根
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Springdoc替換swagger的實現(xiàn)步驟分解
最近在spring看到的,spring要對api文檔動手了,有些人說swagger不好用,其實也沒那么不好用,有人說代碼還是有點侵入性,這倒是真的,我剛試了springdoc可以說還是有侵入性但是也可以沒有侵入性,這就看你對文檔有什么要求了2023-02-02
Eclipse 2020-06 漢化包安裝步驟詳解(附漢化包+安裝教程)
這篇文章主要介紹了Eclipse 2020-06 漢化包安裝步驟(附漢化包+安裝教程),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Spring處理@Async導(dǎo)致的循環(huán)依賴失敗問題的方案詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot中的@Async導(dǎo)致循環(huán)依賴失敗的原因及其解決方案,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-07-07
使用Java獲取系統(tǒng)信息的常用代碼整理總結(jié)
這篇文章主要介紹了使用Java獲取系統(tǒng)信息的常用代碼整理總結(jié),在服務(wù)器端一般經(jīng)常能夠用到,歡迎收藏,需要的朋友可以參考下2015-11-11
SpringMVC打印請求參數(shù)和響應(yīng)數(shù)據(jù)最優(yōu)方案
項目中經(jīng)常需要打印http請求的參數(shù)和響應(yīng)數(shù)據(jù),本文給大家講解如何在SpringMVC打印請求參數(shù)和響應(yīng)數(shù)據(jù)最優(yōu)方案,感興趣的朋友跟隨小編一起看看吧2023-07-07
druid監(jiān)控?zé)o法關(guān)閉的坑以及處理方式
這篇文章主要介紹了druid監(jiān)控?zé)o法關(guān)閉的坑以及處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Spring注解@Value在controller無法獲取到值的解決
這篇文章主要介紹了Spring注解@Value在controller無法獲取到值的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

